次の方法で共有


PoFxSetComponentLatency 関数 (wdm.h)

PoFxSetComponentLatency ルーチンは、アイドル状態から指定されたコンポーネントのアクティブな条件への移行で許容できる最大待機時間を指定します。

構文

void PoFxSetComponentLatency(
  [in] POHANDLE  Handle,
  [in] ULONG     Component,
  [in] ULONGLONG Latency
);

パラメーター

[in] Handle

電源管理フレームワーク (PoFx) を使用したデバイスの登録を表すハンドル。 デバイス ドライバーは、以前に PoFxRegisterDevice ルーチンからこのハンドルを受信しました。

[in] Component

コンポーネントを識別するインデックス。 このパラメーターは、デバイス ドライバーが PoFx にデバイスを登録するために使用したPO_FX_DEVICE構造体の Components 配列へのインデックスです。 Components 配列に N 個の要素が含まれている場合、コンポーネントインデックスの範囲は 0 から N ~ 1 です。

[in] Latency

指定したコンポーネントで許容できる最大待機時間 (100 ナノ秒単位)。 詳細については、「解説」を参照してください。

戻り値

なし

解説

呼び出し元のドライバーは、デバイスのクライアントが指定されたコンポーネントで許容できる最大待機時間を提供します。 この待機時間は、アイドル状態からアクティブな条件への移行を完了するために必要な時間です。 PoFx では、この待機時間がヒントとして使用され、パフォーマンスが向上します。

コンポーネントがアクティブ状態からアイドル状態に切り替わると、PoFx はコンポーネントが入力する適切な低電力 Fx 状態を選択します。 この切り替えが完了すると、アクティブな条件に切り替えるために必要な時間は、選択した Fx 状態によって異なります。 PoFx は、最大待機時間要件に違反しない Fx 状態の選択を試みます。

たとえば、ドライバーが指定されたコンポーネントで電源状態 F0、F1、F2 をサポートしている場合、F2 状態は F1 状態よりも低い電力設定を表します。 通常、F2 からウェイクに必要な時間 T2 (完全にオン状態まで、F0) は、F1 からウェイクするために必要な時間 T1 よりも長くなります。 最大待機時間が T1 より大きいが T2 未満の場合、PoFx はコンポーネントを F1 状態に安全に切り替え、最大待機時間要件を満たすことができます。 ただし、コンポーネントを F2 状態に切り替えることは、この要件に違反するため、PoFx によって回避されます。

デバイス ドライバーは、条件の変更に最大待機時間の変更が必要になるたびに 、PoFxSetComponentLatency を呼び出すことができます。 各呼び出しの後、ドライバーが PoFxSetComponentLatency を再度呼び出して更新するまで、新しい最大待機時間は有効です。

PoFxSetComponentLatency が呼び出されたときにコンポーネントがアイドル状態にある場合、PoFx は、呼び出し元によって指定された新しい最大待機時間に対応するように、コンポーネントの現在の Fx 状態を変更する可能性があります。

要件

要件
サポートされている最小のクライアント Windows 8 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h
Library Ntoskrnl.lib
[DLL] Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

PO_FX_DEVICE

PoFxRegisterDevice