gpt4 book ai didi

c - Windows 7 驱动程序 - 仅运行一次然后需要重新启动

转载 作者:行者123 更新时间:2023-11-30 16:51:31 26 4
gpt4 key购买 nike

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

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

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

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

最佳答案

我解决了。我需要删除我正在创建的符号链接(symbolic link),并删除设备实例。

这是我放入 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);
}

关于c - Windows 7 驱动程序 - 仅运行一次然后需要重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41745709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com