注意加载卸载驱动必须是win32项目

#include <Windows.h>
#include <stdio.h>
int main()
{//等同于创建驱动===============sc create mydriver binpath=C:\Users\Administrator\Desktop\MyDriver1.sys type=kernel================//服务管理器:NULL代表本地服务; SC_MANAGER_ALL_ACCESS 所有权限;SC_HANDLE  hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);if (hSCManager == NULL){printf("openScmanager 错误%d;\n", GetLastError());return -1;}//服务句柄:服务管理器句柄;服务名称;服务名称;服务权限;服务类型:内核驱动;启动类型:SC_HANDLE hService = CreateService(hSCManager,TEXT("mydriver"), //服务名称TEXT("mydriver"),//服务名称SERVICE_ALL_ACCESS, //服务权限 all:代表最高权限其中包括管理和访问权限SERVICE_KERNEL_DRIVER,//;服务类型:内核驱动  //等同于type=kernelSERVICE_DEMAND_START,//启动类型:按需启动SERVICE_ERROR_IGNORE,//错误类型:忽略TEXT("C:\\Users\\zsy\\Desktop\\KMDF_Driver.sys"),//传入服务路径:桌面NULL,NULL,NULL,NULL,NULL);if (hService == NULL){DWORD  strError = GetLastError();if (strError == ERROR_SERVICE_EXISTS){hService = OpenService(hSCManager, TEXT("mydriver"), SERVICE_ALL_ACCESS);if (hService == NULL){return -1;}}else{printf("hService 错误%d;\n", strError);CloseServiceHandle(hSCManager);return -2;}}//等同于启动驱动===============net start================if (!StartService(hService, NULL, NULL)){printf("启动驱动失败%d;\n", GetLastError());CloseServiceHandle(hService);CloseServiceHandle(hSCManager);return -3;}getchar();//等同于卸载驱动===============net stop================SERVICE_STATUS Status;ControlService(hService, SERVICE_CONTROL_STOP, &Status);//同于删除驱动===============net delet================DeleteService(hService);//最后关掉句柄CloseServiceHandle(hService);CloseServiceHandle(hSCManager);
}

//静态编译把lib编译进去exe运行时就不会找不到lib的错误。


win10驱动开发4——加载/卸载驱动相关推荐

  1. Window CE 6.0流驱动开发动态加载实验

    amily:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Rom ...

  2. 驱动学习 - 加载.卸载驱动

    #ifdef __cplusplus extern "C" { #endif#include <ntddk.h> //以"C"语言的方式编译 #if ...

  3. Windows CE下流驱动的动态加载

    Windows CE下流驱动的动态加载 闲话少说,进入正题.查找EVC的帮助,发现函数ActivateDevice()可用来加载驱动程序.而这个函数的使用是相当简单的.我就不多说了,贴上一段帮助最能说 ...

  4. WINCE流驱动的自动加载

    ********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...

  5. Linux驱动——驱动模块初次加载成功,后面失败 failed with error -38

    个人声明:转发请注明出处,个人原创,实属不易.本人水平有限,文章若有不妥之处,还请留言批评指正,不胜感激. 设备树下platform的驱动模块加载 failed with error -38 初次加载 ...

  6. 24. OP-TEE驱动篇----驱动编译,加载和初始化(一)

    历经一年多时间的系统整理合补充,<手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解 >一书得以出版,书中详细介绍了TEE以及系统安全中的所有内容,全书按照从硬件到软件, ...

  7. Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块...

    Linux中mod相关的命令 内核模块化   mod相关命令都是用来动态加载内核模块/驱动程序模块 http://baike.baidu.com/link?url=lxiKxFvYm-UfJIxMjz ...

  8. WinCE驱动的动态加载

    //===================================================================== //TITLE: //    WinCE驱动的动态加载 ...

  9. 一篇文章吃透:为什么加载数据库驱动要用Class.forName()

    1.Class.forName()和ClassLoader.loadClass()和new XX的区别 Class.forName():将类的.class文件加载到jvm中之外,还会对类进行解释,执行 ...

最新文章

  1. 在 Azure App Service 上运行 .NET 6 预览版
  2. P1525-关押罪犯【并查集】
  3. Eureka获取注册信息
  4. linux说明是集群,集群——菜鸟学习Linux集群之概念篇
  5. C++和Java函数传递数组参数比较
  6. 在Linux下安装LaTeX+CJK+中文字体的方法 [转]
  7. runtimeerror怎么解决python_如何解决这个python错误? RuntimeError:字典在迭代期间改变了大小...
  8. LibreOJ 6283 数列分块入门 7(区间加区间乘区间求和)
  9. php集成环境安装包比较,PHP集成环境phpStudy安装包分享
  10. Ubuntu更新软件源
  11. “35岁,我退休了”:关于中年危机,这是最靠谱的回答
  12. Matlab之双坐标轴绘制plotyy
  13. mysql 存储百分数_mysql中如何存储百分数
  14. android mac 探针,wifi探针获取手机mac地址
  15. samba 配置文件详解
  16. Qt Creator 添加大恒相机SDK库
  17. STM32系统定时器SysTick
  18. 【Android】lint检查
  19. 不枕枕头对健康是不好的
  20. java 输入五种水果_java--IO和面向对象(简单的水果仓库管理系统--可选择操作)...

热门文章

  1. CSDN学霸课表——把Word的默认背景颜色由白色改为绿色
  2. 淘宝产品3d展示-家具沙发三维模型应用
  3. libnet、libnids、libpcap轻松搭建Linux网络入侵检测系统
  4. PHP 网页调用本地exe程序实例
  5. 微信公众号语音内容提取下载
  6. Matlab 许可证文件过期
  7. WLC开机卡在launching....(变砖)
  8. Leecode 55跳跃游戏
  9. LeetCode07整数反转(JAVA)
  10. 向NCBI上传16S rDNA数据的操作详解