如果你需要了解驱动如何加载,那么可以参考我的这篇

文章C# 驱动加载 / LoadSysDriver总体两者的方法差异

不大

        public static bool UniSysDriver(string strServiceName){IntPtr hSCManager = OpenSCManager(null, null, SC_MANAGER_CREATE_SERVICE);if (hSCManager == NULL){return false;}IntPtr hService = OpenService(hSCManager, strServiceName, SERVICE_DELETE | SERVICE_STOP);if (hService == NULL){return !CloseServiceHandle(hSCManager);}SERVICE_STATUS SERVICE_STATUS = new SERVICE_STATUS();if (!ControlService(hService, SERVICE_CONTROL_STOP, ref SERVICE_STATUS)){DeleteService(hService);}return CloseServiceHandle(hService) && CloseServiceHandle(hSCManager);}

先打开SCM服务管理器,打开服务但是需要在标志段说明

SERVICE_DELETE | SERVICE_STOP 删除服务与停止服

务两个访问操作权限、在通过ControlService 控制服务、

通过SERVICE_CONTROL_STOP说明当前需要控制停止服

务、在删除服务,这里是删除内核服务也就是驱动、在做最

后资源清理的操作、整个流程便完结了、

示例代码:

 DriverService.UniSysDriver("dxtest");

外部函数:

ControlService( 控制服务

hService 服务句柄

dwControl 控制方式

lpServiceStatus 服务状态)

依赖声明:

        private const int SC_MANAGER_CREATE_SERVICE = 2;private const int SERVICE_STOP = 32;private const int SERVICE_CONTROL_STOP = 1;private const int SERVICE_DELETE = 65536;private static readonly IntPtr NULL = IntPtr.Zero;[DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]public static extern IntPtr OpenSCManager(string machineName, string databaseName, uint dwAccess);[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Auto)]private static extern IntPtr OpenService(IntPtr hSCManager, string lpServiceName, uint dwDesiredAccess);[DllImport("advapi32.dll", SetLastError = true)][return: MarshalAs(UnmanagedType.Bool)]private static extern bool CloseServiceHandle(IntPtr hSCManager);[DllImport("advapi32.dll", SetLastError = true)][return: MarshalAs(UnmanagedType.Bool)]private static extern bool ControlService(IntPtr hService, int dwControl, ref SERVICE_STATUS lpServiceStatus);[DllImport("advapi32.dll", SetLastError = true)][return: MarshalAs(UnmanagedType.Bool)]private static extern bool DeleteService(IntPtr hService);[StructLayout(LayoutKind.Sequential)]private struct SERVICE_STATUS{public int dwServiceType;public int dwCurrentState;public int dwControlsAccepted;public int dwWin32ExitCode;public int dwServiceSpecificExitCode;public int dwCheckPoint;public int dwWaitHint;}

C# 驱动卸载 / UniSysDriver相关推荐

  1. 卸载 系统打印服务器,win10系统打印机驱动卸载不掉的方案介绍

    win10系统使用久了,好多网友反馈说win10系统打印机驱动卸载不掉的问题,非常不方便.有什么办法可以永久解决win10系统打印机驱动卸载不掉的问题,面对win10系统打印机驱动卸载不掉的图文步骤非 ...

  2. linux显卡驱动卸载和安装,Linux下Nvidia显卡驱动卸载和卸载后的问题

    Linux下Nvidia显卡驱动卸载和卸载后的问题 由于在Ubuntu下安装了Nvidia显卡驱动后开机一直处于循环登录界面,密码输入正确也是进不去,然后就决定卸载Nvidia显卡驱动. 首先是在能使 ...

  3. Ubuntu16.04 NVIDIA显卡驱动卸载与安装

    Ubuntu16.04 NVIDIA显卡驱动卸载与安装 1.NVIDIA显卡驱动下载 2.NVIDIA显卡驱动卸载 3.NVIDIA显卡驱动安装 3.1.在线安装 3.2.离线安装 1.NVIDIA显 ...

  4. Nvidia驱动卸载干净了,新驱动却还是安装不上?

    (卸载干净后,驱动还是安装不上) 由于更新到 cuda11.1(驱动版本455.23)之后服务器分布式训练出现多个0MB进程,类似下图 准备卸载后重装,按照上述经历,卸载了驱动和cuda,为了偷懒想重 ...

  5. 服务器有必要更新主板芯片组吗,芯片组驱动要不要更新_芯片组驱动卸载了会怎么样...

    本文首先介绍了芯片组驱动的重要性,其次介绍了芯片组驱动卸载带来的后果,最后阐述了芯片组驱动要不要更新以及更新的步骤教程,具体的跟随小编一起来了解一下. 芯片组驱动的重要性 芯片组是构成主板电路的核心. ...

  6. win10DCH驱动卸载后无法安装标准驱动的问题(与首选图形处理器拒绝访问)

    最近我在安装OBS的时候发现OBS录频显示黑屏,于是我开始在网上查找解决方案,有许多帖子讲解说要在NVIDIA控制面板中更改OBS的首选图形处理器,但是当我打开控制面板后更改OBS时发现提示拒绝访问, ...

  7. Razer雷蛇7.1声音驱动卸载后无法安装问题

    前一阵子因为声音驱动问题卸载了雷蛇的驱动后,怎么安装都不会出现下图的7.1 Surround Sound声道 摸索了一阵子,发现是驱动没有卸载干净的问题. 解决: 先下载下面链接中的驱动卸载工具. 链 ...

  8. linux系统英伟达gpu驱动卸载_Ubuntu 16.04 卸载Nvidia显卡驱动和cuda

    tensorflow不断升级,最新版本的代码需要更高版本的cuda支持.以前一直用cuda8.0和cudnn6.0的组合,tensorflow用1.3.0版本.不过最新下载的models,某些代码执行 ...

  9. linux系统英伟达gpu驱动卸载_ubuntu16.04循环登陆与NVIDIA显卡驱动的卸载/安装

    最近购置了一台自己组装的新台式机,在上面安装了ubuntu和windows双系统,准备在ubuntu上运行CARLA.Ubuntu系统在我刚刚安装好的时候出了挺多问题的,没有网卡驱动,没有显卡驱动.都 ...

最新文章

  1. Python中修改字符串的四种方法
  2. 教学计划c语言源代码,c语言教学计划.doc
  3. 哈尔滨工业大学计算机培养计划,哈工大计算机科学与技术专业本科生培养方案.docx...
  4. 参考文献_参考文献:
  5. 『设计模式』之小试牛刀
  6. java并发AtomicIntegerArray
  7. mac docker mysql_Mac操作系统上使用Docker创建MySQL主从数据库
  8. 自己敲的low到爆炸的代码
  9. Linux操作系统中readelf命令常见用法
  10. 电子游戏发展史话——《doom启示录》读后感(三)
  11. 甘特图:有效的项目管理计划怎么制定?
  12. Python创建网站
  13. 洛可可田浩:情感设计让产品开口说话
  14. python ssologin_Python sso
  15. R语言编程的高效方法
  16. C#线程实现暂停与继续
  17. MHT: Basic Methods for Data Association(三)Gating
  18. 黄淮学院计算机重点学科,黄淮学院专业排名 最好的专业有哪些
  19. 新小米手机--首次使用
  20. 高铁、动车到底啥区别?看完彻底懂了(组图)

热门文章

  1. 南开大学计算机技术考研辅导,南开大学计算机技术考研
  2. 部分用户访问Polycom视频会议时故障
  3. gdb入门教程大全(清晰明了)
  4. 美通企业日报 | 杭州打造全球一流生物医药创新城;雅高与阿里巴巴战略合作...
  5. oracle clog读取 php,Spring+Hibernate中处理Oracle的BLOG和CLOG字段
  6. 睿智的目标检测56——Pytorch搭建YoloV5目标检测平台
  7. PMP认证-项目管理认证好处及优势
  8. 金山中等专业学校计算机,江苏省金山中等专业学校2021年招生简章
  9. 支付宝支付-电脑网站支付
  10. C++基础学习-26继承的构造函数、多重继承、虚继承