次の方法で共有


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

管理するミニポート アダプターごとに、NDIS ミニポート ドライバーは、次の動作状態のセットをサポートする必要があります。

  • 停止

  • シャットダウン

  • 初期化中

  • 一時停止

  • 再起動

  • 実行中

  • 一時停止の処理中

次の図は、これらの状態間の相互関係を示します。

Diagram showing the interrelationships between the operational states of an NDIS miniport driver.

注: リセット操作はミニポート アダプターの動作状態には影響しません。 また、リセット操作の進行中に、アダプターの状態が変わる可能性があります。 たとえば、NDIS は、進行中のリセット操作がある場合、ドライバーの一時停止ハンドラーを呼び出すことがあります。 この場合、ドライバーは、各操作の通常の要件に従っている間、任意の順序でリセットまたは一時停止操作を完了できます。 リセット操作の場合、ドライバーは送信要求パケットを失敗させるか、キューに入れて後で完了することができます。 ただし、送信パケットが保留中の間、上位ドライバーは一時停止操作を完了できないことに注意してください。

アダプターの状態の定義は、次のとおりです。

停止は、すべてのミニポート アダプターの初期状態です。 ミニポート アダプターが停止状態にあり、NDIS が、ミニポート アダプターを初期化するドライバーの MiniportInitializeEx 関数を呼び出すと、ミニポート アダプターは初期化状態になります。 MiniportInitializeEx が失敗した場合、ミニポート アダプターは停止状態に戻ります。 ミニポート アダプターが一時停止状態にあり、NDIS が MiniportHaltEx 関数を呼び出すと、ミニポート アダプターは停止状態に戻ります。

システムをシャットダウンし再起動するまで、シャットダウン状態のミニポート アダプターを使用できません。 ミニポート アダプターが一時停止、再起動、実行中、または一時停止中状態にあり、NDIS がミニポート ドライバーの MiniportShutdownEx 関数を呼び出すと、ミニポート アダプターはシャットダウン状態になります。

初期化中の状態では、ミニポート ドライバーは、ミニポート アダプターを初期化するために必要なすべての操作を完了します。 ミニポート アダプターが停止状態にあり、NDIS がミニポート アダプターの MiniportInitializeEx 関数を呼び出すと、ミニポート アダプターは初期化中状態になります。 MiniportInitializeEx が成功した場合、ミニポート アダプターは一時停止状態に入ります。 MiniportInitializeEx が失敗した場合、ミニポート アダプターは停止状態に戻ります。

ミニポート アダプターが一時停止状態にある場合、ミニポート ドライバーは、受信したネットワーク データを示したり、送信要求を受け入れたりしません。 ミニポート アダプターが一時停止中状態にあり、一時停止動作が完了すると、ミニポート アダプターは一時停止状態になります。 ミニポート アダプターが初期化中の状態にあり、 MiniportInitializeEx が成功すると、ミニポート アダプターは一時停止状態になります。 NDIS がミニポート ドライバーの MiniportRestart 関数を呼び出すと、ミニポート アダプターは一時停止状態から再起動状態に遷移します。 NDIS がミニポート ドライバーの MiniportHaltEx 関数を呼び出すと、ミニポート アダプターは一時停止状態から停止状態に遷移します。

再起動状態では、ミニポート ドライバーは、ミニポート アダプターの送受信動作を再起動するために必要なすべての動作を完了します。 ミニポート アダプターが一時停止状態にあり、NDIS がドライバーの MiniportRestart 関数を呼び出すと、ミニポート アダプターは再起動状態になります。 再起動が失敗した場合、ミニポート アダプターは一時停止状態に戻ります。 再起動が成功した場合、ミニポート アダプターは実行中状態に入ります。

実行中の状態では、ミニポート ドライバーは、ミニポート アダプターの通常の送受信処理を実行します。 ミニポート アダプターが再起動状態にあり、ドライバーが送信動作と受信動作を実行できる場合、ミニポート アダプターは実行中状態に入ります。

一時停止状態では、ミニポート ドライバーは、ミニポート アダプターの送受信動作を停止するために必要なすべての動作を完了します。 ドライバーは、NDIS が未完了のすべての受信表示を返すまで待機する必要があります。 ミニポート アダプターが実行中の状態で、NDIS がドライバーの MiniportPause 関数を呼び出すと、ミニポート アダプターは一時停止中状態に入ります。 ミニポート ドライバーは、一時停止動作を失敗できません。 一時停止動作が完了すると、ミニポート アダプターは一時停止状態になります。

ドライバー スタック管理

NDIS ミニポート ドライバー