在Windows启动时挂起CreateService
Hang on CreateService when windows is starting
我将我的程序注册为Windows服务。当我重新启动窗口时,该服务将永远START_PENDING。在我跟踪之后,我发现它挂在了CreateService功能上。
hService=CreateService( hSCManager,
pszDriverName,
pszDriverName,
SERVICE_ALL_ACCESS,
SERVICE_KERNEL_DRIVER,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
pszDriverPath,
NULL,
NULL,
NULL,
NULL,
NULL);
我可以通过在重新启动之前创建服务来解决问题,但我想知道挂起发生了什么。有人知道吗?
如果我没记错的话,服务只能创建一次。您不必再调用创建服务函数!我不建议在Windows启动过程中创建它。
如以下 MSDN 示例中所示,您必须使用"install"命令行参数启动给定的示例软件才能创建服务。在任何其他情况下,服务被视为已安装。
请注意,在示例中,使用 StartServiceCtrlDispatcher 函数来启动服务 main 函数(在本例中为 SvcMain)。
http://msdn.microsoft.com/en-us/library/windows/desktop/bb540476(v=vs.85).aspx
具有服务的应用程序通常具有注册和安装其服务的安装程序。当您安装应用程序时,所有服务都已创建并注册,无需在引导系统时再次安装它们。Windows 在启动服务时将此函数作为常规函数执行。
您上面提到的功能用于在应创建新服务时安装程序中的服务安装。
相关文章:
- 挂起和取消挂起一个文件DLL
- 如何防止C++遗留代码中的挂起指针
- 为什么所有C++编译器都会崩溃或挂起此代码
- 我编写了代码将十进制分数转换为其二进制等效数.它编译得很好,但在执行时挂起
- 构建挂起,即使是适度的文件大小
- 循环挂起迭代的 std::擦除 on std::list
- Poco::Net::FTPClientSession 在 open() 方法上挂起 129 秒,如果 ftp 主机不存
- Node.js fs.open() 在尝试打开 4 个以上的命名管道 (FIFO) 后挂起
- 从不同进程中的另一个线程挂起/恢复线程或进程
- Boost (Beast) websocket:同步写入挂起
- 为什么析构函数挂起
- 使用互斥会挂起程序
- 在C++和 Python 程序中使用命名管道的 IPC 挂起
- 设置变量时C++程序挂起
- 第一次尝试使用new动态创建结构数组,程序挂起没有错误
- 从stdin读取时子进程挂起(fork/dup2竞争条件)
- 有时ShowWindow从不调用OnShowWindow,主应用程序挂起
- 如何防止GUI挂起,同时允许第二次操作与Qt中的第一次操作一起执行
- WTSFreeMemory在启动期间从服务调用时挂起-我应该省略吗
- 在Windows启动时挂起CreateService