ミニポート アダプターの状態と操作
管理するミニポート アダプターごとに、NDIS 6.0 以降のミニポート ドライバーは、次の動作状態のセットをサポートする必要があります。
停止
停止状態は、すべてのアダプターの初期状態です。 アダプターが停止状態の場合、NDIS はドライバーの MiniportInitializeEx 関数を呼び出してアダプターを初期化できます。
シャットダウン
シャットダウン状態では、システムがアダプターを再び使用する前に、システム シャットダウンと再始動が行われる必要があります。
初期化中
初期化中の状態では、ミニポート ドライバーは、アダプターを初期化するために必要なすべての操作を完了します。
一時停止
一時停止状態では、アダプターは受信したネットワーク データを示したり、送信要求を受け入れたりしません。
再起動
再起動中の状態では、ミニポート ドライバーは、アダプターの送受信動作を再起動するために必要なすべての動作を完了します。
実行中
実行中の状態では、ミニポート ドライバーは、アダプターの送受信処理を実行します。
Pausing
一時停止中の状態では、ミニポート ドライバーは、アダプターの送受信動作を停止するために必要なすべての動作を完了します。
次の表では、見出しはアダプターの状態です。 メジャー イベントが1列目に一覧表示されます。 表の残りのエントリでは、イベントが状態内で発生した後にアダプターが入る次の状態を指定します。 空白のエントリは、無効なイベント/状態の組み合わせを表しています。
イベント\状態 | 停止 | シャットダウン | 初期化中 | 一時停止 | 再起動 | 実行中 | 一時停止の処理中 |
---|---|---|---|---|---|---|---|
初期化中 |
|||||||
初期化が完了しました |
一時停止 |
||||||
シャットダウン |
シャットダウン |
シャットダウン |
シャットダウン |
||||
停止 |
|||||||
再起動 |
|||||||
再起動が完了しました |
実行中 |
||||||
一時停止の処理中 |
|||||||
一時停止が完了しました |
一時停止 |
||||||
初期化できませんでした |
停止 |
||||||
再起動できませんでした |
一時停止 |
||||||
送受信操作 |
実行中 |
一時停止の処理中 |
|||||
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 要求」を参照してください。