今天写驱动的加载和卸载代码的时候出了点儿问题,第一次执行程序的时候一切正常,然而关闭程序后再次开启再次关闭的时候却提示错误代码1072,ERROR_SERVICE_MARKED_FOR_DELETE,服务已经被标记为删除了。这令我很困惑,明明自己是按照卸载的流程操作的,就是不知道为嘛再次打开关闭后就会产生关闭的错误,后来仔细看了看代码,终于找到了原因,原来是我在卸载驱动的过程中,忘记关闭驱动的句柄了了,在关闭驱动服务之前,首先关闭已经打开的驱动句柄即可解决方案。
//m_hDevice是打开的设备句柄 CloseHandle(m_hDevice); //打开SC管理器 .... //打开对应的服务 .... //停止服务 ... //删除驱动服务 ... //完成上面的操作即可彻底删除掉对应的驱动服务