0

我正在为基于 USB 的硬件编写 Ndis 6 微型端口 802.11 驱动程序。该设备工作正常 - 当我安装驱动程序时它工作正常。但是,如果我从控制面板禁用然后启用接口,则不会调用 initializeHandler。禁用工作正常。当我启用接口时,驱动程序条目也返回成功。

有人可以帮我吗?原因是什么?

问候, 苏维克

4

1 回答 1

0

通常这意味着以前的DEVICE_OBJECT还没有被完全删除。它的名称仍在使用中,因此DEVICE_OBJECT新设备无法使用该名称注册新设备。

如果设备有打开的句柄,以前的设备可能会卡住。如果您有任何打开设备句柄的代码,您应该确保它们被关闭。还要确保你已经释放了你的微型端口分配的所有对象。例如,匹配对 的调用NdisAllocateTimerObject与对 的调用NdisFreeTimerObject。确保您的MiniportHaltEx处理程序正在被调用并返回。

此外,如果您连接了内核调试器,您可以使用!ndiskd.miniport. 它会告诉您之前的微型端口是否仍然存在,如果存在,它处于什么状态。

于 2011-12-10T05:00:56.403 回答