C++ 启动服务问题!

来源:百度知道 编辑:UC知道 时间:2024/07/03 15:56:20
自己弄的一个烂程序:

一、先创建一个服务,然后启动它 -> StartService() //成功
二、停止这个服务: //成功
SERVICE_STATUS ss;
ControlService( hService, SERVICE_CONTROL_STOP, &ss )
三、再启动它; -> StartService() //失败了!!!

但是,如果并闭程序再打开,再 StartService() //成功。

如何解决?
源码在这里贴不了了,因为问题补充不能超过1000字节; 我贴到回复里去吧..... 代码临时精简了一下,为了看得更清晰点; 主要是这两个函数,main()里的代码就无需贴了.

是不是对象没被释放啊,瞎猜的

不贴源代码,怎么弄清楚?

我是楼主,此程序是加载sys的?

BOOL LoadDriver( IN LPCTSTR lpFileName )
{
HANDLE hDevice=0;
SC_HANDLE hSCManager = OpenSCManager( NULL, NULL,SC_MANAGER_CREATE_SERVICE );
CreateService(hSCManager, SERVICE_NAME,SERVICE_NAME, SERVICE_START,SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START,SERVICE_ERROR_IGNORE, lpFileName, NULL, NULL, NULL, NULL, NULL );
SC_HANDLE hService = OpenService( hSCManager, SERVICE_NAME, SERVICE_START );
if(!StartService( hService, 0, NULL ))
{
printf("ERROR!");
return false;
}
else
return true;
CloseServiceHandle( hService );
CloseServiceHandle( hSCManager );
hDevice = CreateFileA( DEVICE_NAME,GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL );
}

BOOL UnloadDriver()
{
SC_HANDLE hSCManager = OpenSCManager( NULL, NULL,SC_MANAGER_CREATE_SERVICE );
SC_HANDLE hService = OpenService( hSC