InitializeHandler драйвера минипорта не вызывается при отключенном и включенном интерфейсе

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

Кто-нибудь может помочь мне? Что было бы причиной этого?

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

1 ответ

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

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

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

Другие вопросы по тегам