ミニポート ドライバー ハードウェア リセット

ミニポート ドライバーは、MiniportResetEx 関数をNdisMRegisterMiniportDriverに登録する必要があります。

MiniportResetEx は、NdisMResetComplete の呼び出しで同期的または非同期的に完了できます (次の図を参照してください)。

Diagram illustrating the process of resetting a network interface card.

MiniportResetEx は次の必要があります:

  • その他の割り込みを無効にする。

  • 進行中の送信に関連付けられているデータをクリアする。 たとえば、バス マスター ダイレクト メモリ アクセス (DMA) デバイスのリング バッファーでは、バッファーを送信するポインターをクリアする必要があります。 逆シリアル化された接続指向ミニポート ドライバーは、キューに入っている送信要求の NDIS_STATUS_REQUEST_ABORTED を返す必要があります。

  • リセット操作の前に存在していた状態にハードウェアの状態とミニポート ドライバーの内部状態を復元する。

ミニポート ドライバーは、マルチキャスト アドレス、パケット フィルター、タスク オフロード設定、およびウェイク アップ パターンを除き、デバイスのハードウェアの状態を復元する役割を担います。 これらの設定は、ミニポート ドライバーまたは NDIS によって復元されます。 ミニポート ドライバーは、AddressingReset パラメーターでブール値を返すことによって、これらの設定を復元するユーザーを決定します。

ミニポート ドライバーが AddressingReset パラメーターで FALSE を返す場合、ミニポート ドライバーは、そのマルチキャスト アドレス、パケット フィルター、タスク オフロード設定、およびウェイク アップ パターンを初期状態に復元します。 ミニポート ドライバーが AddressingResetTRUE を 返す場合、NDIS はコネクションレス型ミニポート ドライバーの MiniportOidRequest 関数またはコネクション型ミニポート ドライバーの MiniportCoOidRequest 関数を呼び出して以下の設定を設定します:

ミニポート ドライバーのアダプターの状態

ミニポート アダプターの状態と操作

ミニポート ドライバーのリセットおよび停止関数