如何从内部卸载Windows内核模式驱动程序



我正在编写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

相关内容

  • 没有找到相关文章

最新更新