我正在为基于 USB 的硬件编写 Ndis 6 微型端口 802.11 驱动程序。该设备工作正常 - 当我安装驱动程序时它工作正常。但是,如果我从控制面板禁用然后启用接口,则不会调用 initializeHandler。禁用工作正常。当我启用接口时,驱动程序条目也返回成功。
有人可以帮我吗?原因是什么?
问候, 苏维克
通常这意味着以前的DEVICE_OBJECT
还没有被完全删除。它的名称仍在使用中,因此DEVICE_OBJECT
新设备无法使用该名称注册新设备。
如果设备有打开的句柄,以前的设备可能会卡住。如果您有任何打开设备句柄的代码,您应该确保它们被关闭。还要确保你已经释放了你的微型端口分配的所有对象。例如,匹配对 的调用NdisAllocateTimerObject
与对 的调用NdisFreeTimerObject
。确保您的MiniportHaltEx
处理程序正在被调用并返回。
此外,如果您连接了内核调试器,您可以使用!ndiskd.miniport
. 它会告诉您之前的微型端口是否仍然存在,如果存在,它处于什么状态。