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

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

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

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

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

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

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

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

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

次の表では、見出しはアダプターの状態です。 主要なイベントは最初の列に一覧表示されます。 テーブル内の残りのエントリは、状態内でイベントが発生した後にアダプターが入力する次の状態を指定します。 空のエントリは、無効なイベントと状態の組み合わせを表します。

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

ミニポートInitializeEx

初期化中

初期化が完了しました

Paused

ミニポートShutdownEx

シャットダウン

シャットダウン

シャットダウン

シャットダウン

ミニポートHaltEx

停止

ミニポートの開始

再起動

再起動が完了しました

実行中

MiniportPause

一時停止中

一時停止が完了しました

Paused

初期化に失敗しました

停止

再起動に失敗しました

Paused

送受信操作

実行中

一時停止中

OID 要求

Paused

再起動

実行中

一時停止中

メモ 前の表に示すイベントは、NDIS 6.0 以降のアダプターのプライマリ イベントです。

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

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

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

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

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

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

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

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

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

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

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

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

再起動に失敗しました
NDIS がドライバーの Miniportrestart 関数を呼び出し、再起動の試行が失敗した場合、アダプターは一時停止状態のままになります。

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

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

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

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

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

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

アダプターの一時停止

アダプターの起動