Перезапуск привязки
Чтобы перезапустить приостановленную привязку, NDIS отправляет драйверу протокола уведомление о событии перезапуска сетевого Plug and Play (PnP). После того как драйвер протокола получит уведомление о перезапуске, затронутая привязка переходит в состояние Перезапуск.
Чтобы отправить уведомление о перезапуске, NDIS вызывает функцию ProtocolNetPnPEvent драйвера протокола. Структура NET_PNP_EVENT_NOTIFICATION , которую NDIS передает в ProtocolNetPnPEvent , указывает NetEventRestart в элементе NetEvent , а элемент Buffer содержит указатель на структуру NDIS_PROTOCOL_RESTART_PARAMETERS . NDIS предоставляет указатель на структуру NDIS_RESTART_ATTRIBUTES в элементе RestartAttributes структуры NDIS_PROTOCOL_RESTART_PARAMETERS.
Примечание Пока привязка была приостановлена, NDIS могла перенастроить стек драйверов. Новая конфигурация стека может поддерживать другой набор возможностей для базового адаптера. Эти новые возможности могут повлиять на то, как драйвер протокола взаимодействует с привязкой.
Драйвер протокола должен использовать сведения из структуры NDIS_PROTOCOL_RESTART_PARAMETERS , чтобы избежать ненужных запросов OID.
В состоянии перезапуска драйвер протокола может:
Используйте запросы OID для запроса стека драйверов. Например, драйвер может узнать о поддержке масштабирования на стороне приема с помощью OID_GEN_RECEIVE_SCALE_CAPABILITIES.
При необходимости перераспределять пулы NET_BUFFER и NET_BUFFER_LIST .
Перечисление списка базовых модулей фильтра.
Используйте запросы OID для отображения новых возможностей адаптера.
Когда драйвер будет готов к возобновлению операций отправки и получения привязки, привязка переходит в состояние Выполняется.