【问题标题】:Unable to unload driver after setting DeviceObject flags设置 DeviceObject 标志后无法卸载驱动程序
【发布时间】:2021-10-23 16:04:30
【问题描述】:

我遇到了驱动程序卸载功能的问题。因为我使用 MmGetSystemAddressForMdlSafe 函数,所以我必须将 DeviceObject Flags 设置为 DO_DIRECT_IO。 (DeviceObject->标志 = DO_DIRECT_IO)。这个指针在我的代码中造成了很多麻烦,因为我无法正确卸载我的驱动程序。在 WinDbg 中,我可以看到卸载函数被正确调用。它正在删除 Symboliclink,但出于未知原因,它没有从 Windows 对象中删除 DeviceObject。 IoDeleteDevice(DriverObject->DeviceObject) 我可以在 Winobjects 中看到 DeviceObject 仍然存在(只有 Symboliclink 被删除)并且即使在卸载驱动程序后我的 .sys 文件仍然加载到系统进程中。在指向 DeviceObject->Flags = DO_DIRECT_IO 之后,我应该如何卸载我的驱动程序?我的目标是正确卸载驱动程序。

【问题讨论】:

    标签: c++ driver wdk wdm


    【解决方案1】:

    我必须设置 DeviceObject->Flags |= DO_DIRECT_IO;

    ,而不是 DeviceObject->Flags = DO_DIRECT_IO

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-28
      • 1970-01-01
      相关资源
      最近更新 更多