时间:2023-04-06 06:41:36来源:本站整理作者:点击:
一、卸载驱动源代码
BOOL UnloadDriver(const char* 驱动名称)
{
BOOL 返回值 = FALSE;
SC_HANDLE 管理器句柄 = NULL;
SC_HANDLE 驱动服务句柄 = NULL;
SERVICE_STATUS 服务状态;
char 缓存[256] = { 0 };
管理器句柄 = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (管理器句柄 == NULL)
{
sprintf_s(缓存, "nxyn:管理器句柄获取失败:%d\n",GetLastError());
OutputDebugStringA(缓存);
返回值 = FALSE;
goto BeforeLeave;
}
else
{
sprintf_s(缓存, "nxyn:管理器句柄获取成功\n");
OutputDebugStringA(缓存);
}
驱动服务句柄 = OpenServiceA(管理器句柄, 驱动名称, SERVICE_ALL_ACCESS);
if (驱动服务句柄 == NULL)
{
sprintf_s(缓存, "nxyn:驱动服务句柄获取失败:%d\n", GetLastError());
OutputDebugStringA(缓存);
返回值 = FALSE;
goto BeforeLeave;
}
else
{
sprintf_s(缓存, "nxyn:驱动服务句柄获取成功\n");
OutputDebugStringA(缓存);
}
//停止驱动程序,如果停止失败,只有重新启动才能,再动态加载。
if (!ControlService(驱动服务句柄, SERVICE_CONTROL_STOP, &服务状态))
{
sprintf_s(缓存, "nxyn:停止驱动程序失败:%d\n", GetLastError());
OutputDebugStringA(缓存);
}
else
{
sprintf_s(缓存, "nxyn:停止驱动程序成功\n");
OutputDebugStringA(缓存);
}
//动态卸载驱动程序,删除服务
if (!DeleteService(驱动服务句柄))
{
//卸载失败
sprintf_s(缓存, "nxyn:动态卸载驱动程序失败:%d\n", GetLastError());
OutputDebugStringA(缓存);
}
else
{
//卸载成功
sprintf_s(缓存, "nxyn:动态卸载驱动程序成功\n");
OutputDebugStringA(缓存);
}
返回值 = TRUE;
BeforeLeave:
//离开前关闭打开的句柄
if (驱动服务句柄)
{
CloseServiceHandle(驱动服务句柄);
}
if (管理器句柄)
{
CloseServiceHandle(管理器句柄);
}
return 返回值;
}
二、添加头文件,申明函数
#pragma once
BOOL LoadDriver(const char* 驱动名称, const char* 驱动路径);
BOOL UnloadDriver(const char* 驱动名称);
三、通过卸载按钮,实现卸载驱动
UnloadDriver("123");
四、卸载效果
伊利QQ星奶粉和小小CBA达成战略合作,2023年榛高篮球挑战赛全面开启
父母家暴对孩子的影响,如何处理夫妻感情中的家庭暴力?父母家暴对孩子的影响,如何处理夫妻感情中的家庭暴力?
夫妻吵架总冷战怎么办?怎么和好并且化解夫妻吵架呢?林志玲登上11月杂志封面,做妈妈之后成为幸福的代名词“关公”陆树铭因病去世,网爆大衣哥亲往西安悼念,被赞有情有义《卿卿日常》24节气姑娘结局是什么_《卿卿日常》24节气姑娘离开老三了吗关注公益慈善可以在哪里查询全国慈善组织的公开信息 蚂蚁庄园1月12日答案
Copyright 2022-2026 feiyundao.com 〖妃孕岛〗 版权所有 陕ICP备2022000637号-4
声明: 本站文章均来自互联网,不代表本站观点 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告