我正在编写Windows内核驱动程序,并正在尝试实现以下内容。
假设已使用特定的 IOCTL 代码通过 DeviceIoControl 函数从用户模式调用驱动程序。在这种情况下,司机如何自行卸货?换句话说,如何实现与运行net stop
命令相同的行为?
更准确地说,在实现调度设备控制回调时我应该写什么
NTSTATUS IoctlDeviceControl(PDEVICE_OBJECT pDeviceObject, PIRP pIrp) {
// some code...
switch (ioctlCode) {
case IOCTL_MY_UNLOAD: <---
...
}
return Status;
}
ZwUnloadDriver
内核函数!
文档:
ZwUnloadDriver 例程从系统中卸载驱动程序。使用这个 例行公事要格外小心。(请参阅以下"备注"部分。
C/C++ 定义:
NTSTATUS ZwUnloadDriver(
_In_ PUNICODE_STRING DriverServiceName
);
MSDN 来源:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff567117(v=vs.85).aspx