バインドの一時停止

NDIS は、ネットワーク プラグ アンド プレイ (PnP) のバインディングの一時停止イベント通知をプロトコル ドライバーに送信した後、バインドは一時停止状態になります。

PnP 一時停止イベントをプロトコル ドライバーに通知するために、NDIS は、NET_PNP_EVENT_NOTIFICATION 構造体の NetEvent メンバーを NetEventPause に設定して、ProtocolNetPnPEvent 関数を呼び出します。 Buffer メンバーには、NDIS_PROTOCOL_PAUSE_PARAMETERS 構造体が含まれています。

一時停止状態のバインドの場合、プロトコル ドライバーは次のようになります。

  • 新しい送信要求を開始しないでください。

  • 未処理の送信要求が完了するまで待機する必要があります。 NDIS がドライバーのすべての未処理の送信要求の ProtocolSendNetBufferListsComplete 関数を呼び出すまで、一時停止操作は完了しません。

  • 通常どおりに受信指示を処理する必要があります。 基になるミニポート ドライバーは、一時停止操作を完了する前に、未処理の受信データが返されるのを待機します。 これにより、ミニポート ドライバーが一時停止した後、ドライバー スタックに継続的な受信操作がないことを確認します。

  • 新しい受信指示を直ちに NDIS に返す必要があります。 必要に応じて、ドライバーはそれらを返す前に、このような受信指示をコピーできます。

プロトコル ドライバーの送受信操作の詳細については、「プロトコル ドライバーの送受信操作」を参照してください。

バインドは、プロトコル ドライバーが完了し、バインドの未処理の受信指示を返し、NDIS が、バインドのすべての未処理の送信要求を完了した後、一時停止状態に入ります。

一時停止状態のバインドの場合、プロトコル ドライバーは次のようになります。

  • 送信要求を行ってはなりません。

  • 直ちに受信指示を返す必要があります。 必要に応じて、ドライバーはそれらを返す前に、このような受信指示をコピーできます。