Как NDIS обнаруживает неактивные сетевые адаптеры
После того как минипорт драйвер включил выборочную приостановку NDIS и зарегистрировал свои функции обработчика, NDIS отслеживает активность ввода-вывода сетевого адаптера следующим образом:
NDIS отслеживает вызовы функций обработчика ввода-вывода, которые драйвер мини-порта регистрирует через структуры NDIS_MINIPORT_DRIVER_CHARACTERISTICS и NDIS_MINIPORT_PNP_CHARACTERISTICS. Например, NDIS отслеживает вызовы драйвера miniportSendNetBufferLists или MiniportReturnNetBufferLists, чтобы определить, участвует ли драйвер в любом действии ввода-вывода пакета.
NDIS также отслеживает вызовы NdisOidRequest и NdisDirectOidRequest, сделанные вышележащими драйверами протоколов.
Примечание NDIS отслеживает только те запросы идентификатора объекта (OID) к базовому драйверу мини-порта, которые не обрабатываются непосредственно NDIS.
NDIS определяет, что сетевой адаптер неактивен, если он не обнаруживает никаких действий в течение периода ожидания простоя. Длительность этого тайм-аута задается значением *SSIdleTimeout стандартизованного INF-ключевого слова. Дополнительные сведения об этом ключевом слове см. в разделе Стандартные ключевые слова INF для выборочной приостановки NDIS.
После простоя сетевого адаптера NDIS запускает выборочную операцию приостановки. Через эту операцию сетевой адаптер приостанавливается путем перехода его в состояние низкой мощности.
NDIS начинает эту выборочную операцию приостановки путем выдачи уведомления об простое драйверу мини-порта. NDIS делает это путем вызова функции обработчика MiniportIdleNotification. Дополнительные сведения о том, как драйвер минипорта обрабатывает это уведомление, см. в разделе Обработка уведомления о выборочной приостановке NDIS.
Если NDIS обнаруживает, что запросы ввода-вывода к сетевому адаптеру делаются наложенными драйверами или если адаптер сигнализирует о событии пробуждения, NDIS отменяет уведомление о простое. NDIS делает это, вызывая функцию MiniportCancelIdleNotification обработчика минипорта.
Дополнительные сведения о том, как NDIS отменяет уведомление о простое, см. в отмене уведомления о выборочной приостановке NDIS.
Для получения более подробной информации о том, как драйвер минипорта завершает процесс уведомления о простое, см. в разделе Завершение уведомления о селективной приостановке NDIS.