アダプターの一時停止

NDIS は、ミニポート ドライバーの MiniportPause 関数を呼び出して、一時停止操作を開始します。 アダプターは一時停止操作が完了するまで一時停止状態を保持します。

一時停止状態では、ミニポート ドライバーは、未処理の受信操作を完了する必要があります。 ドライバーは、未処理の送信操作も完了する必要があり、新しい送信要求を拒否する必要があります。

受信操作を完了するには、ドライバーが返す NdisMIndicateReceiveNetBufferLists 関数のすべての呼び出しを待機し、NDIS は、ミニポート ドライバーの MiniportReturnNetBufferLists 関数にすべての未処理の NET_BUFFER_LIST 構造体を返す必要があります。

未処理の送信操作を完了するには、ミニポート ドライバーは、未処理のすべてのNET_BUFFER_LIST構造体の NdisMSendNetBufferListsComplete 関数を呼び出す必要があります。 ドライバーは、MiniportSendNetBufferLists 関数に対して行われたすべての新しい送信要求を直ちに拒否する必要があります。

ミニポート ドライバーが未処理のすべての送受信操作を完了した後、ドライバーは同期的または非同期的に一時停止要求を完了する必要があります。 一時停止操作が非同期に完了した場合、ドライバーは NdisMPauseComplete を呼び出して一時停止要求を完了します。 一時停止要求が完了すると、ミニポート ドライバーは一時停止状態になります。

ミニポート ドライバーが一時停止状態の間、NDIS は、停止、初期化、電源の変更、または再起動操作など、他のプラグ アンド プレイ操作を開始しません。 NDIS は、ミニポート ドライバーが一時停止状態になった後、これらのプラグ アンド プレイ操作を開始できます。