次の方法で共有


中間ドライバー リセット操作

中間ドライバーは、基になる NIC がリセットされたために、基になるドライバーへのバインドに対する未処理の送信がドロップされる可能性のある状況を処理するための準備をする必要があります。

基になるドライバーは、通常、NDIS が NIC にバインドされているキューに入れられた送信または要求をタイムアウトすると、ミニポート ドライバーの MiniportResetEx 関数を呼び出すため、NIC をリセットします。 基になる NIC がリセットされた場合、NDIS は、状態が NDIS_STATUS_RESET_START の各バインドされたプロトコルと中間ドライバーの ProtocolStatusEx (または ProtocolCoStatusEx) 関数を呼び出します。 ミニポート ドライバーがリセットを完了すると、NDIS は ProtocolStatusEx (または ProtocolCoStatusEx) を NDIS_STATUS_RESET_END の状態で再度呼び出します。

NIC がリセットされると、バインドされた中間ドライバーに、その NIC に対して保留中の送信ネットワーク データがある場合、NDIS はそれらのネットワーク データを適切な状態で中間ドライバーに完了します。 中間ドライバーは、リセットが完了したら、これらのネットワーク データを再度送信する必要があります。

中間ドライバーが NDIS_STATUS_RESET_START の状態を受け取ると、次のことを行う必要があります。

  • ProtocolStatusEx または ProtocolCoStatusEx がNDIS_STATUS_RESET_END 通知を受信するまで、ネットワーク データを送信する準備をします。

  • ProtocolStatusEx (または ProtocolCoStatusEx) が NDIS_STATUS_RESET_END 通知を受信するまで、次の上位ドライバーまで示す準備ができている受信ネットワーク データを保持します。

  • 進行中の操作と NIC ステータスのために保持されている内部状態をクリーンアップします。

ProtocolStatusEx (または ProtocolCoStatusEx) がNDIS_STATUS_RESET_ENDを受け取った後、中間ドライバーはネットワーク データの送信を再開し、要求を行い、上位レベルのドライバーに指示を行うことができます。

中間ドライバーは、MiniportResetEx 関数を提供しません。