Приостановка адаптера
NDIS вызывает функцию MiniportPause драйвера минипорта для запуска операции приостановки. Адаптер остается в состоянии Приостановка до завершения операции приостановки.
В состоянии Приостановка драйвер мини-порта должен завершить незавершенные операции получения. Драйвер также должен завершить все невыполненные операции отправки и отклонять все новые запросы на отправку.
Чтобы завершить операции получения, драйвер ожидает возврата всех вызовов функции NdisMIndicateReceiveNetBufferLists , а NDIS должен вернуть все незавершенные структуры NET_BUFFER_LIST в функцию MiniportReturnNetBufferLists драйвера miniport.
Чтобы завершить невыполненные операции отправки, драйвер мини-порта должен вызвать функцию NdisMSendNetBufferListsComplete для всех незавершенных структур NET_BUFFER_LIST. Драйвер должен немедленно отклонять все новые запросы на отправку, сделанные в его функции MiniportSendNetBufferLists .
После того как драйвер мини-порта завершит все невыполненные операции отправки и получения, драйвер должен выполнить запрос на приостановку синхронно или асинхронно. Если операция приостановки выполняется асинхронно, драйвер вызывает NdisMPauseComplete для выполнения запроса на приостановку. После выполнения запроса на приостановку драйвер мини-порта находится в состоянии Приостановлено.
NDIS не инициирует другие операции Plug and Play, такие как остановка, инициализация, изменение питания или перезапуск, пока драйвер мини-порта находится в состоянии приостановки. NDIS может инициировать эти Plug and Play операции после того, как драйвер мини-порта находится в состоянии Приостановка.