NDIS がアイドル状態のネットワーク アダプターを検出する方法
ミニポート ドライバーは、NDIS 選択的な中断を有効にし、そのハンドラー関数を登録した後、NDIS は、次の方法でネットワーク アダプターの I/O アクティビティを監視します。
NDIS は、ミニポート ドライバーが NDIS_MINIPORT_DRIVER_CHARACTERISTICS および NDIS_MINIPORT_PNP_CHARACTERISTICS 構造体を通じて登録する I/O ハンドラー関数の呼び出しを監視します。 例えば、NDISはミニポートドライバの MiniportSendNetBufferLists または MiniportReturnNetBufferLists への呼び出しを監視し、ドライバがパケットI/Oアクティビティに関与しているかどうかを判断する。
NDIS は、上にあるプロトコル ドライバーによって行われた NdisOidRequest と NdisDirectOidRequest の呼び出しも監視します。
注 NDIS は、NDIS によって直接処理されない基になるミニポート ドライバーに対するオブジェクト識別子 (OID) 要求のみを監視します。
NDIS は、アイドルタイムアウト期間、アダプター上のアクティビティを検出しない場合、ネットワーク アダプターがアイドル状態であることを判断します。 このタイムアウト期間の長さは、標準化された INF キーワード *SSIdleTimeout の値によって指定されます。 この INF キーワードの詳細については、「NDIS 選択的中断の標準化された INF キーワード」を参照してください。
ネットワーク アダプターがアイドル状態になると、NDIS は選択的な中断操作を開始します。 この操作により、ネットワーク アダプターは低電力状態に遷移することによって中断されます。
NDIS は、ミニポート ドライバーにアイドル状態の通知を発行することによって、この選択的な中断操作を開始します。 NDIS は、ドライバーの MiniportIdleNotification ハンドラー関数を呼び出すことによってこれを行います。 ミニポート ドライバーがこの通知を処理する方法の詳細については、 NDIS 選択的中断アイドル通知の処理 を参照してください。
ネットワーク アダプターへの I/O 要求がオーバーレイ ドライバーから発行されたことを NDIS が検出した場合、またはアダプターがウェイクアップ イベントを通知する場合、NDIS はアイドル状態の通知をキャンセルします。 NDIS は、ミニポート ドライバーの MiniportCancelIdleNotification ハンドラー関数を呼び出すことによってこれを行います。
NDIS がアイドル状態の通知を取り消す方法の詳細については、「NDIS 選択的中断アイドル通知の取り消し」を参照してください。
ミニポート ドライバーがアイドル状態の通知を完了する方法の詳細については、 「NDIS 選択的中断アイドル通知を完了する」を参照してください。