InitializeHandler драйвера минипорта не вызывается при отключенном и включенном интерфейсе - PullRequest
0 голосов
/ 09 декабря 2011

Я пишу драйвер минипорта 802.11 для Ndis 6 для USB-оборудования.Устройство работает нормально - в лицо при установке драйвера работает нормально.Но если я отключаю, а затем включаю интерфейс с панели управления, initializeHandler не вызывается.Инвалид работает отлично отлично.Когда я включаю интерфейс, запись драйвера также возвращает успех.

Кто-нибудь может мне помочь?В чем причина?

С уважением, Souvik

1 Ответ

0 голосов
/ 10 декабря 2011

Обычно это означает, что предыдущий DEVICE_OBJECT еще не был полностью удален. Его имя все еще используется, поэтому новый DEVICE_OBJECT не может зарегистрировать новое устройство с таким именем.

Предыдущее устройство может застрять, если на устройстве есть открытые ручки. Если у вас есть какой-либо код, открывающий дескрипторы устройства, вы должны убедиться, что они закрыты. Также убедитесь, что у вас есть все объекты, которые выделяет ваш минипорт. Например, сопоставить звонки на NdisAllocateTimerObject с звонками на NdisFreeTimerObject. Убедитесь, что ваш обработчик MiniportHaltEx вызывается и возвращается.

Кроме того, если у вас подключен отладчик ядра, вы можете проверить ситуацию с помощью !ndiskd.miniport. Он сообщит вам, если предыдущий минипорт все еще присутствует, и если да, то в каком он состоянии.

...