禁用和启用接口时,不会调用微型端口驱动程序的InitializeHandler

时间:2011-12-09 11:59:24

标签: windows ndis miniport

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

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

此致 Souvik

1 个答案:

答案 0 :(得分:0)

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

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

此外,如果您附加了内核调试程序,则可以使用!ndiskd.miniport检查情境。它将告诉您前一个微型端口是否仍然存在,如果存在,它将处于什么状态。