MINIPORT_IDLE_NOTIFICATION コールバック関数 (ndis.h)
NDIS は 、ミニポートIdleNotification ハンドラー関数を呼び出して、アイドル状態のネットワーク アダプターで NDIS 選択的中断操作を開始します。 この操作により、ネットワーク アダプターは中断され、低電力状態に移行されます。
構文
MINIPORT_IDLE_NOTIFICATION MiniportIdleNotification;
NDIS_STATUS MiniportIdleNotification(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] BOOLEAN ForceIdle
)
{...}
パラメーター
[in] MiniportAdapterContext
ミニポート ドライバーがその MiniportInitializeEx 関数で割り当てたコンテキスト領域へのハンドル。 ミニポート ドライバーは、このコンテキスト領域を使用して、ネットワーク アダプターの状態情報を維持します。
[in] ForceIdle
TRUE に設定すると、ミニポート ドライバーがアイドル状態の通知を拒否し、低電力状態の遷移を続行する必要があることを指定するブール値。
ForceIdle パラメーターの詳細については、「解説」セクションを参照してください。
戻り値
MiniportIdleNotification は 、次のいずれかの状態値を返します。
リターン コード | 説明 |
---|---|
NDIS_STATUS_PENDING | ミニポート ドライバーは、アイドル状態の通知を正常に処理しました。 ミニポート ドライバーが NdisMIdleNotificationComplete を呼び出すまで、通知は保留中の状態のままです。 メモ: ミニポート ドライバーは、 MiniportIdleNotification からNDIS_STATUS_SUCCESSを返すことはできません。 |
NDIS_STATUS_BUSY | ネットワーク アダプターがまだ使用されているため、ミニポート ドライバーはアイドル状態の通知を拒否しました。 注:ForceIdle パラメーターが TRUE に設定されている場合、MiniportIdleNotification はこの状態コードを返してはなりません。 |
NDIS_STATUS_FAILURE | ミニポート ドライバーは、バス固有の IRP を正常に発行できませんでした。 |
注釈
NDIS 選択的中断インターフェイスをサポートするミニポート ドライバーには、 MiniportIdleNotification ハンドラー関数が必要です。 ドライバーが選択的な中断ハンドラー関数を登録する方法の詳細については、「 NDIS 選択的中断ハンドラー関数の登録」を参照してください。
ネットワーク アダプターがアイドルタイムアウト期間より長く非アクティブになっている場合、NDIS は ForceIdle パラメーターを FALSE に設定します。 そのため、NDIS はネットワーク アダプターのみを 選択的に中断 します。
アイドルタイムアウト期間の期間は、*SSIdleTimeout INF キーワード (keyword)の値によって指定されます。 このキーワード (keyword)の詳細については、「NDIS 選択的中断の標準化された INF キーワード」を参照してください。
注意
NDIS は、Always On Always Connected (AOAC) テクノロジに準拠しているシステムがコネクト スタンバイ状態に移行している場合にのみ、ForceIdle パラメーターを TRUE に設定します。
ミニポート ドライバーは、ネットワーク アダプターが使用されていると判断した場合は、NDIS_STATUS_BUSYを返すことによってアイドル状態の通知要求を拒否できます。 これにより、NDIS は、ネットワーク アダプター上のアクティビティのモニターを再起動します。
アダプターがアイドルタイムアウト期間内に再び非アクティブになった場合、NDIS は MiniportIdleNotification を呼び出します。
注意
ForceIdle パラメーターが TRUE に設定されている場合、ミニポート ドライバーはNDIS_STATUS_BUSYを返す必要があります。
アイドル状態の通知が発行されると、次の方法で取り消して完了できます。
次の条件に該当する場合、NDIS は未処理のアイドル状態の通知を取り消すことができます。
- 基になるプロトコルまたはフィルター ドライバーは、パケットの送信要求または OID 要求をミニポート ドライバーに発行します。
- 基になるアダプターは、Wake-on-LAN (WOL) パターンに一致するパケットを受信したり、メディア接続状態の変化を検出したりするなど、ウェイクアップ イベントを通知します。
NDIS は 、MiniportCancelIdleNotification を呼び出すことによってアイドル状態の通知を取り消します。 このハンドラー関数が呼び出されると、ミニポート ドライバーは、アイドル状態の通知に対して以前に発行したバス固有の IRP を取り消します。 最後に、ミニポート ドライバーは NdisMIdleNotificationComplete を呼び出して、アイドル状態の通知を完了します。
ネットワーク アダプターが低電力状態になった後、ミニポート ドライバーは、完全な電源状態にアダプターを再開するためにアイドル状態の通知自体を完了できます。 これを行う理由は、ドライバーとアダプターの設計と要件に固有です。
ミニポート ドライバーは、 NdisMIdleNotificationComplete を呼び出すことによってアイドル状態の通知を完了します。 ミニポート ドライバーがアイドル状態の通知を完了する方法の詳細については、「 NDIS 選択的中断アイドル通知の完了」を参照してください。
NDIS 選択的中断のアイドル状態の通知を処理する方法の詳細については、「 NDIS 選択的中断アイドル通知の処理」を参照してください。
MiniportIdleNotification ハンドラー関数を実装する方法のガイドラインについては、「MiniportIdleNotification ハンドラー関数の実装」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.30 以降でサポートされています。 |
対象プラットフォーム | Windows |
ヘッダー | ndis.h (Ndis.h を含む) |
IRQL | PASSIVE_LEVEL |