Приостановка привязки

После того как NDIS отправляет драйверу протокола уведомление о событии приостановки сетевого модуля Plug and Play (PnP) для привязки, привязка переходит в состояние приостановки.

Чтобы уведомить драйвер протокола о событии приостановки PnP, NDIS вызывает функцию ProtocolNetPnPEvent, в которой элемент NetEvent структуры NET_PNP_EVENT_NOTIFICATION установлен в значение NetEventPause. Элемент буфера содержит структуру NDIS_PROTOCOL_PAUSE_PARAMETERS.

Для привязки в состоянии приостановки драйвер протокола:

  • Не следует инициировать новые запросы на отправку.

  • Должен ждать завершения невыполненных запросов на отправку. Операция приостановки не завершена, пока NDIS не вызовет функцию ProtocolSendNetBufferListsComplete для всех запросов на отправку драйвера, находящихся в ожидании.

  • Следует обрабатывать сигналы получения как обычно. Базовый минипорт-драйвер ожидает возврата данных из невыполненных запросов на получение перед завершением операции приостановки. Это гарантирует отсутствие текущих операций получения в стеке драйверов после приостановки минипорт-драйвера.

  • Следует немедленно передавать новые сигналы получения в NDIS. При необходимости драйвер может скопировать такие индикаторы получения, прежде чем вернуть их.

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

Привязка переходит в состояние паузы после того, как драйвер протокола завершит возврат всех незавершенных индикаций приема для этой привязки, а NDIS завершит все невыполненные запросы на отправку для привязки.

Для привязки в приостановленном состоянии драйвер протокола:

  • Нельзя отправлять какие-либо запросы.

  • Необходимо немедленно возвращать сигналы получения. При необходимости драйвер может скопировать такие индикаторы получения, прежде чем вернуть их.