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


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

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

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

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

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

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

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

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

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

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

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

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

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