我在寫一個Windows內核驅動程序,我試圖實現以下內容。如何從內部卸載Windows內核模式驅動程序?
假設驅動程序已經通過DeviceIoControl函數用戶模式調用了特定的IOCTL代碼。在這種情況下駕駛員如何卸載?換句話說,如何實現與運行net stop
命令一樣的行爲?
更確切地說,實施DispatchDeviceControl callback
NTSTATUS IoctlDeviceControl(PDEVICE_OBJECT pDeviceObject, PIRP pIrp) {
// some code...
switch (ioctlCode) {
case IOCTL_MY_UNLOAD: <---
...
}
return Status;
}
嘗試使用'IoDeleteDevice()',但此功能高度依賴於您的驅動程序的類型。如果您有一個用戶模式應用程序,則可以使用WIN32 API來停止類似於「net stop」的服務,但以編程方式完成。 – Rohan