次の方法で共有


インターミディエイトドライバーのリセット操作

中間ドライバーは、基になる NIC がリセットされると、基になるドライバーへのバインドで送信中のデータが失われる可能性がある状況に対処できるように準備する必要があります。

基になるドライバーは通常、NDIS がキューに入っている送信またはリクエストのタイムアウト時にミニポート ドライバーのミニポートResetEx 関数を呼び出すため、NICをリセットします。 基になる NIC がリセットされた場合、NDIS は、各バインドされたプロトコルと中間ドライバーの ProtocolStatusEx(または ProtocolCoStatusEx) 関数を呼び出し、状態がNDIS_STATUS_RESET_START。 ミニポート ドライバーがリセットを完了すると、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を受け取った後、中間ドライバーはネットワーク データの送信を再開し、要求を行い、上位レベルのドライバーに指示を出すことができます。

中間ドライバーは 、ミニポートResetEx 関数を提供しません。