【发布时间】:2013-11-10 18:34:34
【问题描述】:
我正在编写一个 Windows 内核驱动程序,我正在尝试实现以下内容。
假设驱动程序已通过具有特定 IOCTL 代码的 DeviceIoControl 函数从用户模式调用。在这种情况下,驱动程序如何自行卸载?也就是说,如何实现与运行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的服务,但以编程方式完成。
标签: windows kernel driver windows-kernel