【问题标题】:Windows 7 Driver - Only Runs Once then Requires a RebootWindows 7 驱动程序 - 仅运行一次,然后需要重新启动
【发布时间】:2017-06-04 09:12:04
【问题描述】:

最近,我一直在玩 Windows 7 中的驱动程序。到目前为止,我已经构建了一个可以与用户模式应用程序对话的驱动程序。 但是,我一直在启动和停止驱动程序时遇到问题。 首先,我安装驱动程序并启动它,它工作得很好。我停止它,它也停止了。但是,当我再次启动它时,它会出现错误 2 代码“找不到指定的文件”。

为了解决这个问题,我必须卸载驱动程序,然后重新启动。重新启动后,我可以再次安装它,运行一次,然后整个过程重新开始。

所以我的问题是如何解决这个问题?我真的很讨厌每次重建和测试驱动程序时都必须重新启动,所以我想知道我在构建和部署过程中是否做错了什么。

我在构建过程中使用标准的 DDK 命令行构建,并且我正在使用一个名为 OSR Driver Loader 的应用程序来加载驱动程序。不过,我也可以使用 SC 命令行来安装它。

【问题讨论】:

    标签: c windows-7 drivers


    【解决方案1】:

    我解决了。我需要删除我正在创建的符号链接,并删除 Device 实例。

    这是我在 OnUnload 函数中输出的代码:

    // this deletes the symbolic link for the driver
    IoDeleteSymbolicLink(&deviceLinkUnicodeString);
    
    // this deletes the device
    IoDeleteDevice(g_RootkitDevice);
    

    因此,我需要将其作为我的 OnUnload 函数:

    VOID OnUnload(IN PDRIVER_OBJECT DriverObject)
    {
        // this deletes the symbolic link for the driver
        IoDeleteSymbolicLink(&deviceLinkUnicodeString);
    
        // this deletes the device
        IoDeleteDevice(g_RootkitDevice);
    }
    

    【讨论】:

      猜你喜欢
      • 2017-10-23
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多