NT式驱动的卸载
A、卸载驱动流程
B、内核函数DeleteService
C、内核函数ControlService
D、构建UnLoadSys函数
E、测试并查看调试信息
一、卸载驱动流程
1、用OpenSCManager函数打开 服务控制管理器,取得SCM句柄,如果返回NULL,则结束,否则继续2.//hSCM
2、用OpenService打开相应的服务,如果返回NULL,则结束,否则继续3.hSerVice
3、用ControlService停止驱动服务,如果返回NULL,只有重新启动才能,再动态加载。
4、用DeleteService动态卸载驱动程序,如果返回NULL,则打印出错调试信息,否则打印成功信息。
//卸载驱动程序
BOOL UnLoadSys( char * szSvrName )
{
//一定义所用到的变量
BOOL bRet = FALSE;
SC_HANDLE hSCM=NULL;//SCM管理器的句柄,用来存放OpenSCManager的返回值
SC_HANDLE hService=NULL;//NT驱动程序的服务句柄,用来存放OpenService的返回值
SERVICE_STATUS SvrSta;
//二打开SCM管理器
hSCM = OpenSCManager( NULL, NULL,