利用SCM載入驅動

2021-06-16 09:02:33 字數 1722 閱讀 6331

mark一下:

寫了乙個簡單得類

後期會陸續新增其他兩種常用方法.

標頭檔案:

class driverloader  

;

實現檔案:

// driverloader.cpp: implementation of the driverloader class.

////

#include "driverloader.h"

//// construction/destruction

//driverloader::driverloader(cstring path,cstring name)

driverloader::~driverloader()

bool driverloader::loadntdriverbyscm()

else

hservice = createservice( hmanager,

servicename,

servicename,

service_all_access,

service_kernel_driver,

service_demand_start,

service_error_ignore,

driverpath,

null,

null,

null,

null,

null );

dword dwrtn;

if( hservice == null )

else

//開啟服務

hservice = openservice( hmanager, servicename, service_all_access );

if( hservice == null )

else

}else

//開啟服務

bret = startservice( hservice, null, null);

if( !bret )

else

else

}} messagebox( null, "success", "startservice", mb_ok );

closeservicehandle( hmanager );

closeservicehandle( hservice );

return bret;

}bool driverloader::unloadntdriverbyscm()

else

//開啟服務

hservice = openservice( hmanager, servicename, service_all_access );

if( hservice == null )

else

//停止驅動

if( !controlservice( hservice,service_control_stop, &svrsta) )

else

//解除安裝服務

if( !deleteservice( hservice ) )

else

bret = true;

closeservicehandle( hmanager );

closeservicehandle( hservice );

return bret;

}

載入LSI驅動

如是是64位系統,則解壓其中的megaraid sas v00.00.04.37 k2.6.32 21 server.amd64.gz,得到megaraid sas v00.00.04.37 k2.6.32 21 server.amd64檔案,把這個檔案加上字尾.zip 再次解壓就會得到下面所用用到...

驅動 載入 解除安裝

載入過程 bool cloadsysdlg loaddriver lpctstr lpservicename,lpctstr lppathname sc createhanle createservice scmanagerhandle,lpservicename,用於建立登記資料庫中的關鍵字 lp...

驅動載入順序

在系統初始化的時候,決定驅動程式在什麼時候被載入的資訊儲存在登錄檔中。最早的一批驅動是由ntldr載入記憶體的 僅僅是載入 第二批是由io管理器載入記憶體的 第三批是由 scm service control manager 載入的 乙個驅動在第幾批中被載入是由 hklm system curren...