次の方法で共有


POFXCALLBACKPLATFORMIDLEVETO コールバック関数 (pepfx.h)

PlatformIdleVeto ルーチンは、プラットフォームアイドル状態の拒否コードの拒否カウントをインクリメントまたはデクリメントします。

構文

POFXCALLBACKPLATFORMIDLEVETO Pofxcallbackplatformidleveto;

NTSTATUS Pofxcallbackplatformidleveto(
  [in] POHANDLE ProcessorHandle,
  [in] ULONG PlatformState,
  [in] ULONG VetoReason,
  [in] BOOLEAN Increment
)
{...}

パラメーター

[in] ProcessorHandle

(デバイスとして) プロセッサと 電源管理フレームワーク (PoFx) の登録を表す POHANDLE 値。 プラットフォーム拡張機能プラグイン (PEP) は、プロセッサが PoFx に登録されたことを PEP に通知した PEP_DPM_REGISTER_DEVICE 通知中に、PoFx からこのハンドルを以前に受け取っていました。

[in] PlatformState

拒否カウントがインクリメントまたはデクリメントされるプラットフォーム アイドル状態のインデックス。 PEP では、 PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES 通知に応答して、サポートされているプラットフォームのアイドル状態が以前に指定されました。 PEP で N 個のプラットフォームアイドル状態が指定されている場合、有効なプラットフォーム アイドル状態インデックスの範囲は 0 から N から 1 です。

[in] VetoReason

プラットフォームのアイドル状態を入力できない理由を示す PEP 定義の拒否コード。 PEP は以前、 PEP_NOTIFY_PPM_QUERY_VETO_REASONS 通知に応じて、サポートされている拒否理由の数を指定しました。 PEP が M 拒否の理由を指定した場合、有効な拒否コードの範囲は 1 から M です。

[in] Increment

拒否カウントをインクリメントまたはデクリメントするかどうか。 この拒否理由の拒否カウントをインクリメントするには TRUE に設定し、カウントを減らすには FALSE に設定します。

戻り値

PlatformIdleVeto は、呼び出しが正常に拒否カウントをインクリメントまたはデクリメントした場合に、STATUS_SUCCESSを返します。 考えられるエラーの戻り値には、次の状態コードが含まれます。

戻り値 説明
STATUS_NOT_IMPLEMENTED
PlatformIdleVeto ルーチンがこのプロセッサに対して実装されていないことを示します。

注釈

このルーチンは PoFx によって実装され、PEP によって呼び出されます。 PEP_KERNEL_INFORMATION_STRUCT_V3構造体の PlatformIdleVeto メンバーは、PlatformIdleVeto ルーチンへのポインターです。

PEP が PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES 通知を処理すると、各プラットフォームのアイドル状態は、すべての拒否コードに対して 0 の拒否カウントで始まります。 PEP では、拒否コードの拒否回数を増やして、オペレーティング システムがプラットフォームをこのアイドル状態に移行するのを防ぐことができます。 PEP は、カウントが増加する原因となった拒否権の理由が有効でなくなった場合に、拒否カウントをデクリメントします。 すべての拒否コードのカウントが 0 に減った後にのみ、オペレーティング システムはプラットフォームをこのアイドル状態に移行できます。

このルーチンは、IRQL = PASSIVE_LEVELで呼び出す必要があります。

要件

要件
サポートされている最小のクライアント Windows 10 以降でサポートされています。
対象プラットフォーム Windows
ヘッダー pepfx.h (Pep_x.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

PEP_KERNEL_INFORMATION_STRUCT_V3

PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES

PEP_NOTIFY_PPM_QUERY_VETO_REASONS