阅读:1239回复:6
为什么ControlService黑屏?
void DelSvr( char * szSvrName )
{ SC_HANDLE hServiceMgr, hServiceTwdm; SERVICE_STATUS SvrSta; hServiceMgr = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS ); if( hServiceMgr == NULL ) { MessageBox(NULL, \"DelSvr::OpenSCManager() Failed!\", \"Error\", MB_OK); return; } else { MessageBox(NULL, \"DelSvr::OpenSCManager() Succeed!\", \"Success\", MB_OK); } hServiceTwdm = OpenService( hServiceMgr, TEXT(szSvrName), SERVICE_ALL_ACCESS ); if( hServiceTwdm == NULL ) { CloseServiceHandle( hServiceMgr ); MessageBox(NULL, \"DelSvr::OpenService() Failed!\", \"Error\", MB_OK); return; } else { MessageBox(NULL, \"DelSvr::OpenService() Succeed!\", \"Success\", MB_OK); } if( !ControlService( hServiceTwdm, SERVICE_CONTROL_STOP , &SvrSta ) ) { MessageBox(NULL, \"DelSvr::ControlService() Failed!\", \"Error\", MB_OK); } else { MessageBox(NULL, \"DelSvr::ControlService() Succeed!\", \"Success\", MB_OK); } if( !DeleteService( hServiceTwdm ) ) { MessageBox(NULL, \"DelSvr::DeleteSrevice() Failed!\", \"Error\", MB_OK); } else { MessageBox(NULL, \"DelSvr::DeleteSrevice() Succeed!\", \"Success\", MB_OK); } CloseServiceHandle( hServiceTwdm ); CloseServiceHandle( hServiceMgr ); return; } 我调用以上函数卸载驱动,为何程序执行到ControlService时黑屏,这可能是什么原因造成的呢? |
|
沙发#
发布于:2005-03-23 08:36
是驱动卸载时出现的问题,“DRIVER UNLOADED WITHOUT CANCELLING PENDING OPERATION”。
我写的是Native API的hook程序,该如何处理呢? |
|
板凳#
发布于:2005-03-23 10:20
代码分了几个文件,太长,给我个邮箱我发给你帮我看看吧。
|
|