成功加载驱动,但卸载失败!

Cricketol 2009-03-06 10:29:36

//SOURCES
TARGETNAME=hello
TARGETPATH=obj
TARGETTYPE=DRIVER
SOURCES=hello.c

//hello.c
void StartSrv()
{
char namebuf[256];
memset(namebuf, 0, sizeof(namebuf));
SC_HANDLE hMgr, hCS, hOS;

GetCurrentDirectory(256, namebuf );
strcat(namebuf, "\\objchk\\i386\\hello.sys" );

hMgr = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if(hMgr == NULL)
{
printf("OpenSCManager failed!!!\n");
exit(0);
}
hCS = CreateService(hMgr,TEXT("hello"), TEXT("hello"),
SERVICE_ALL_ACCESS,
SERVICE_KERNEL_DRIVER,
SERVICE_DEMAND_START,
SERVICE_ERROR_IGNORE,
TEXT(namebuf),0,0,0,0,0);
if(hCS == NULL)
{
printf("CreateService failed!\n");
CloseHandle(hMgr);
exit(0);
}

hOS = OpenService(hMgr, "hello", SERVICE_ALL_ACCESS);
if(hOS == NULL)
{
printf("OpenService failed!\n");
CloseHandle(hCS);
CloseHandle(hMgr);
exit(0);
}
StartService(hOS,NULL,NULL);
CloseServiceHandle(hCS);//到这里就可以在DeviceTree里看到hello了
CloseServiceHandle(hOS);
CloseServiceHandle(hMgr);
getch();
CloseSvc(TEXT("hello"));
}
void CloseSvc(char *pServiceName)
{
SC_HANDLE sch;
SERVICE_STATUS ss;
sch = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);//成功
if(sch == NULL)
{
printf("OpenSCManager failed!\n");
exit(0);
}
SC_HANDLE scm;
scm = OpenService(sch,TEXT(pServiceName),SERVICE_ALL_ACCESS);//成功
if(scm == NULL)
{
CloseServiceHandle(sch);
printf("OpenService failed!\n");
exit(0);
}
if(!ControlService(scm, SERVICE_CONTROL_STOP, &ss))//这个失败
{
CloseServiceHandle(sch);
CloseServiceHandle(scm);
printf("ControlService failed!\n");
exit(0);
}
if(!DeleteService(scm))
{
CloseServiceHandle(sch);
CloseServiceHandle(sch);
printf("DeleteService failed!\n");
exit(0);
}
}
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cricketol 2009-03-07
  • 打赏
  • 举报
回复
解决了,是我驱动代码的问题......

来人接分!!!
gooogleman 2009-03-07
  • 打赏
  • 举报
回复
恭喜。哈哈。是windows的驱动?

厉害。
allenzh 2009-03-07
  • 打赏
  • 举报
回复
恭喜
其实你可以结合驱动一起调试,问题应该比较好找
建议不要做NT式的驱动,最好是做WDM/WDF的

21,618

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧