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

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

停止
停止状態は、すべてのアダプターの初期状態です。 アダプターが停止状態の場合、NDIS はドライバーの MiniportInitializeEx 関数を呼び出してアダプターを初期化できます。

シャットダウン
シャットダウン状態では、システムがアダプターを再び使用する前に、システム シャットダウンと再始動が行われる必要があります。

初期化中
初期化中の状態では、ミニポート ドライバーは、アダプターを初期化するために必要なすべての操作を完了します。

一時停止
一時停止状態では、アダプターは受信したネットワーク データを示したり、送信要求を受け入れたりしません。

再起動
再起動中の状態では、ミニポート ドライバーは、アダプターの送受信動作を再起動するために必要なすべての動作を完了します。

実行中
実行中の状態では、ミニポート ドライバーは、アダプターの送受信処理を実行します。

Pausing
一時停止中の状態では、ミニポート ドライバーは、アダプターの送受信動作を停止するために必要なすべての動作を完了します。

次の表では、見出しはアダプターの状態です。 メジャー イベントが1列目に一覧表示されます。 表の残りのエントリでは、イベントが状態内で発生した後にアダプターが入る次の状態を指定します。 空白のエントリは、無効なイベント/状態の組み合わせを表しています。

イベント\状態 停止 シャットダウン 初期化中 一時停止 再起動 実行中 一時停止の処理中

MiniportInitializeEx

初期化中

初期化が完了しました

一時停止

MiniportShutdownEx

シャットダウン

シャットダウン

シャットダウン

シャットダウン

MiniportHaltEx

停止

MiniportRestart

再起動

再起動が完了しました

実行中

MiniportPause

一時停止の処理中

一時停止が完了しました

一時停止

初期化できませんでした

停止

再起動できませんでした

一時停止

送受信操作

実行中

一時停止の処理中

OID 要求

一時停止

再起動

実行中

一時停止の処理中

注: 上の表に示されているイベントは、NDIS 6.0 以降のアダプターのプライマリ イベントです。

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

プライマリ ミニポート ドライバー イベントは、次のように定義されます。

MiniportInitializeEx
NDIS は、アダプターを初期化するためにドライバーの MiniportInitializeEx 関数を呼び出しました。 アダプターの初期化の詳細については、「ミニポート アダプターの初期化」を参照してください 。

初期化が完了しました
MiniportInitializeEx が正常に返された後、初期化操作が完了し、アダプターが一時停止状態になります。

MiniportShutdownEx
NDIS は、アダプターをシャットダウンするためにドライバーの MiniportShutdownEx 関数を呼び出しました。 詳細については、「ミニポート アダプターのシャットダウン」を参照してください。

MiniportHaltEx
NDIS は、アダプターを停止するためにドライバーの MiniportHaltEx 関数を呼び出しました。 詳細については、「ミニポート アダプターの停止」を参照してください。

MiniportRestart
NDIS は、一時停止したアダプターを再起動するためにドライバーの MiniportRestart 関数を呼び出しました。 アダプターは初期化後に一時停止状態になっているため、アダプターの初期化が完了した後にアダプターを起動するには、このイベントも必要です。 詳細については、「アダプターの起動」を参照してください。

再起動が完了しました
ドライバーが送受信操作を処理する準備ができたら、再起動操作が完了し、アダプターが実行中状態になります。

MiniportPause
NDIS は、アダプターを一時停止するためにドライバーの MiniportPause 関数を呼び出しました。 詳細については、「アダプターの一時停止」を参照してください。

一時停止が完了しました
ドライバーが送受信操作を停止するために必要なすべての操作を完了すると、一時停止操作が完了し、アダプターが一時停止状態になります。

ドライバーは、一時停止操作が完了する前に、未処理の受信表示をすべて返すために NDIS を待機する必要があります。

初期化できませんでした
NDIS がドライバーの MiniportInitializeEx 関数を呼び出し、初期化の試行が失敗した場合、アダプターは停止状態に戻ります。

再起動できませんでした
NDIS がドライバーの MiniportRestart 関数を呼び出し、再起動の試行が失敗した場合、アダプターは一時停止状態を維持します。

送受信操作
ドライバーは、実行中の状態と一時停止中の状態で送受信操作を処理する必要があります。 送受信操作について詳しくは、「ミニポート ドライバーの送受信操作」をご覧ください。

OID 要求
ドライバーは、実行中、再起動中、一時停止、および一時停止中の状態の OID 要求を処理する必要があります。 OID 要求の詳細については、「アダプターの OID 要求」を参照してください。

ミニポート アダプターの停止

ミニポート アダプターの初期化

ミニポート アダプターのシャットダウン

ミニポート ドライバーの送信および受信操作

アダプターの一時停止

アダプターの起動