0
CreateService或StartService掛在Windows 7 x64上,當我嘗試使用它來註冊服務的新服務時。 在服務控制管理器中,我嘗試運行的服務的狀態爲「正在啓動」。試圖創建和運行服務CreateService或StartService在Windows 7上掛起x64
代碼:
SC_HANDLE hSCManager = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if(!hSCManager)
throw ::GetLastError();
SC_HANDLE hService = ::OpenService(hSCManager,
TEXT("ProcessManager"),
SERVICE_ALL_ACCESS);
if(!hService && ::GetLastError() == ERROR_SERVICE_DOES_NOT_EXIST)
{
hService = ::CreateService(hSCManager, TEXT("ProcessManager"),
TEXT("ProcessManager"), SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER,
SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE, TEXT("C:\\processmanager.sys"),
NULL, NULL, NULL, NULL, NULL);
}
if(!hService ||
(!::StartService(hService, 0, NULL) && ::GetLastError() != ERROR_SERVICE_ALREADY_RUNNING))
{
::CloseServiceHandle(hSCManager);
if(hService)
::CloseServiceHandle(hService);
DWORD err = ::GetLastError();
throw err;
}
請幫助:)
很樂意提供幫助,但信息不足。 –
這是試圖運行服務的代碼: – palmer
那麼,什麼是'C:\\ processmanager.sys'?我相信Q中的代碼運行得更高。它到達的代碼有多遠?它掛在'CreateService'中? –