Поделиться через


Регистрация функций обработчика выборочной приостановки NDIS

Если драйвер минипорта поддерживает выборочную приостановку NDIS, NDIS уведомляет драйвер о том, что базовый сетевой адаптер неактивен. Драйвер мини-порта должен предоставить следующие функции для обработки этих уведомлений о простое:

MiniportIdleNotification
NDIS вызывает функцию обработчика MiniportIdleNotification , чтобы уведомить драйвер минипорта о том, что сетевой адаптер неактивен. Драйвер мини-порта обрабатывает уведомление о простое, определяя, может ли сетевой адаптер перейти в состояние с низким энергопотреблением. Водитель минипорта выполняет это определение в конкретном автобусе способом.

Например, драйвер USB-минипорта определяет, может ли сетевой адаптер перейти в состояние с низким энергопотреблением, отправляя пакет запроса ввода-вывода (IRP) для запроса простоя USB (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) базовому драйверу USB-шины. При обработке этого IRP драйвер минипорта получает уведомление о том, что адаптер неактивен и может быть переведен в состояние с низким энергопотреблением.

MiniportCancelIdleNotification
NDIS вызывает функцию обработчика MiniportCancelIdleNotification для отмены уведомления о невыполненных простоях. При вызове этой функции драйвер мини-порта отменяет все ранее выданные ему шины irP для уведомления о простое.

Например, при вызове MiniportCancelIdleNotification мини-порт USB должен отменить ранее выданный запрос простоя USB IRP. При отмене IRP драйвер мини-порта получает уведомление о том, что адаптер теперь можно перевести в состояние полной мощности.

При вызове функции DriverEntry драйвера мини-порта драйвер регистрирует свои функции обработчика выборочной приостановки NDIS, выполнив следующие действия:

  1. Драйвер мини-порта должен задать элемент SetOptionsHandler структуры NDIS_MINIPORT_DRIVER_CHARACTERISTICS точку входа для функции MiniportSetOptions драйвера. Драйвер вызывает NdisMRegisterMiniportDriver , чтобы зарегистрировать свою NDIS_MINIPORT_DRIVER_CHARACTERISTICS структуру в NDIS.

  2. NDIS вызывает функцию MiniportSetOptions в контексте вызова NdisMRegisterMiniportDriver.

    При вызове MiniportSetOptions драйвер мини-порта инициализирует структуру NDIS_MINIPORT_SS_CHARACTERISTICS с указателями на функции обработчика. Затем драйвер мини-порта вызывает NdisSetOptionalHandlers и задает параметр OptionalHandlers в качестве указателя на структуру NDIS_MINIPORT_SS_CHARACTERISTICS .

Дополнительные сведения об обработке уведомлений о простое для выборочной приостановки NDIS см. в разделе NDIS Выборочная приостановка уведомлений о простое.