?? loaddrv.h
字號:
#define DriverPath "%SystemRoot%\\system32\\drivers\\npf.sys"
#define ServiceName "npf"
// 安裝驅動并啟動服務
// lpszDriverPath: 驅動程序路徑
// lpszServiceName: 服務名
BOOL StartDriver(LPCTSTR lpszDriverPath, LPCTSTR lpszServiceName)
{
SC_HANDLE hSCManager; // 服務控制管理器句柄
SC_HANDLE hService; // 服務句柄
BOOL bResult = FALSE; // 返回值
// 打開服務控制管理器
hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (NULL == hSCManager) {
printf("OpenSCManager failed (%d)\n", GetLastError());
return bResult;
}
if (hSCManager) {
// 創建服務
hService = CreateService(
hSCManager,
lpszServiceName,
lpszServiceName,
SERVICE_ALL_ACCESS,
SERVICE_KERNEL_DRIVER,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
lpszDriverPath,
NULL,
NULL,
NULL,
NULL,
NULL);
if (hService == NULL) {
if (::GetLastError() == ERROR_SERVICE_EXISTS) {
hService = ::OpenService(hSCManager, lpszServiceName, SERVICE_ALL_ACCESS);
}
}
if (hService) {
// 啟動服務
bResult = StartService(hService, 0, NULL);
// 關閉服務句柄
CloseServiceHandle(hService);
}
// 關閉服務控制管理器句柄
CloseServiceHandle(hSCManager);
}
return bResult;
}
BOOL DeleteDriver(LPCTSTR lpszServiceName)
{
SC_HANDLE hSCManager; // 服務控制管理器句柄
SC_HANDLE hService; // 服務句柄
BOOL bResult = FALSE; // 返回值
// 打開服務控制管理器
hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (NULL == hSCManager) {
printf("OpenSCManager failed (%d)\n", GetLastError());
return bResult;
}
// Get a handle to the service.
hService = OpenService(
hSCManager, // SCM database
lpszServiceName, // name of service
DELETE); // need delete access
if (hService == NULL) {
printf("OpenService failed (%d)\n", GetLastError());
CloseServiceHandle(hSCManager);
return bResult;
}
// Delete the service.
if (! (bResult=DeleteService(hService)) ) {
printf("DeleteService failed (%d)\n", GetLastError());
}
else printf("Service deleted successfully\n");
CloseServiceHandle(hService);
CloseServiceHandle(hSCManager);
return bResult;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -