我正在尋找一個命令列解決方案停止 Windows 驅動程式我手動安裝的。
安裝過程如下:
sc create MyDrv type= kernel start= demand binPath= "C:\MyDrv.sys"
net start MyDrv
查詢驅動程式輸出資訊:
C:\>sc query MyDrv
SERVICE_NAME: MyDrv
TYPE : 1 KERNEL_DRIVER
STATE : 4 RUNNING
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
該NOT_STOPPABLE
標誌似乎是一個巨大的指示器,表明我想要完成的任務無法完成。然而,該驅動程式屬於一個應用程序,當我從電腦上卸載該應用程式時,該應用程式會設法停止並刪除它。那麼,有什麼辦法可以殺死這個混蛋嗎? (不幸的是,我沒有驅動程式的源代碼)。
如果你想知道,是的,我嘗試過:
C:\>net stop MyDrv
The requested pause or stop is not valid for this service.
More help is available by typing NET HELPMSG 2191.
答案1
如果
它是實際的驅動程式而不是服務
,並且
您可以在裝置管理員中停用/啟用它而不會出現問題,
那麼
您可能可以使用「Devcon」批次和cmd提示字元停用和啟用它。
否則,
如果它是一項服務,那麼最好知道實際的服務名稱,如服務屬性所示。
對於
具有驅動程式的服務,停用驅動程式可能比停用服務更容易。
抱歉,我對程式碼感到困惑:-) 這件事聽起來像是一個真正的粘性問題,這可能需要在註冊表中為其設置不同的內容,或者比我在這裡的帖子更好地理解它。
找到適合 64 位元的 devcon 並不容易,而且作業系統或位元的錯誤版本根本不起作用,因此如果您嘗試 devcon,您必須擁有適合您沒有透露的確切系統的正確版本。
它真的叫Mydrv嗎?因為它可能有助於了解任何實際名稱或產品,因此為了獲得答案而混淆(sp)驅動程式在這裡可能沒有用。
答案2
安裝它的應用程式可能會呼叫驅動程式中的特殊函數或向其發送精心設計的訊息以告訴其正常關閉。
答案3
使用線路
devcon remove full_drivername_and_path
例如
devcon remove root\kmdfHelloWorld
它對我有用(devcon install
順便說一句,我用過)。