次の方法で共有


DXGKDDIPOWERRUNTIMECONTROLREQUEST コールバック関数 (d3dkmddi.h)

ディスプレイ ミニポート ドライバーと情報を交換するために、Power Engine プラグイン (PEP) によって呼び出されます。 また、特定のイベントについてディスプレイ ミニポート ドライバーに通知するために、Microsoft DirectX グラフィックス カーネル サブシステムによって呼び出されます。

構文

DXGKDDIPOWERRUNTIMECONTROLREQUEST Dxgkddipowerruntimecontrolrequest;

NTSTATUS Dxgkddipowerruntimecontrolrequest(
  IN_CONST_HANDLE DriverContext,
  IN LPCGUID PowerControlCode,
  IN PVOID InBuffer,
  IN SIZE_T InBufferSize,
  OUT PVOID OutBuffer,
  IN SIZE_T OutBufferSize,
  OUT PSIZE_T BytesReturned
)
{...}

パラメーター

DriverContext

ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーの DxgkDdiAddDevice 関数は、以前に DirectX グラフィックス カーネル サブシステムにこのハンドルを提供しました。

PowerControlCode

PEP の制御要求の意味を定義する GUID へのポインター。 詳細については、「解説」を参照してください。

InBuffer

入力バッファーへの省略可能なポインター。

InBufferSize

InBuffer が指 バッファーのサイズ (バイト単位)。

OutBuffer

出力バッファーへの省略可能なポインター。

OutBufferSize

OutBuffer が指すバッファー のサイズ (バイト単位)。

BytesReturned

ディスプレイ ミニポート ドライバーによって出力バッファーに書き込まれるバイト数を含むバッファーへの省略可能なポインター。

戻り値

成功した場合はSTATUS_SUCCESSを返します。 それ以外の場合は、Ntstatus.h で定義されているエラー コードのいずれかを返します。

備考

オペレーティング システムは、ディスプレイ ミニポート ドライバーが DXGK_DRIVERCAPSを設定してサポートを示す場合にのみ、DxgkDdiPowerRuntimeControlRequest を呼び出します。SupportRuntimePowerManagementTRUE する

Power Engine プラグイン (PEP) で使用される GUID

PEP は、D3dkmddi.h で定義されている次の GUID を使用して、ディスプレイ ミニポート ドライバーと情報を交換します。 ディスプレイ ポート ドライバーは、これらの GUID を使用して Windows イベント トレーシング (ETW) イベントを発行します。これは、ドライバーのパフォーマンスの問題をプロファイリングするのに役立ちます。
GUID_DXGKDDI_POWER_VOLTAGE_UP
電圧を上げる。
GUID_DXGKDDI_POWER_VOLTAGE_DOWN
電圧を下げます。
GUID_DXGKDDI_POWER_VOLTAGE
電圧を変更しますが、ドライバーは変化が増加または減少しているかどうかを知りません。
GUID_DXGKDDI_POWER_CLOCK_UP
クロック設定を大きくします。
GUID_DXGKDDI_POWER_CLOCK_DOWN
クロック設定を小さくします。
GUID_DXGKDDI_POWER_CLOCK
時計の設定を変更しますが、ドライバーは変更が増減しているかどうかを認識しません。
GUID_DXGKDDI_POWER_BANDWIDTH_UP
帯域幅を増やします。
GUID_DXGKDDI_POWER_BANDWIDTH_DOWN
帯域幅を減らします。
GUID_DXGKDDI_POWER_BANDWIDTH
帯域幅を変更しますが、ドライバーは変更が増減しているかどうかを認識しません。

DirectX グラフィックス カーネル サブシステムで使用される GUID

DirectX グラフィックス カーネル サブシステムは、特定のイベントについてディスプレイ ミニポート ドライバーに通知する D3dkmddi.h で定義されている次の GUID を使用します。
GUID_DXGKDDI_POWER_MANAGEMENT_PREPARE_TO_START
DirectX グラフィックス カーネル サブシステムがランタイム電源管理用にデバイスを登録した後、デバイスが起動する前に使用されます。 この GUID を使用してこの関数が呼び出されると、ディスプレイ ミニポート ドライバーは次の関数を呼び出すことができます。
  • DxgkCbSetPowerComponentActive
  • DxgkCbSetPowerComponentLatency
  • DxgkCbSetPowerComponentResidency
GUID_DXGKDDI_POWER_MANAGEMENT_STARTED
DirectX グラフィックス カーネル サブシステムがランタイム電源管理を開始した後に使用されます。 この GUID を使用してこの関数を呼び出した後、ディスプレイ ミニポート ドライバーは、任意の電源ランタイム関数を呼び出すことができます。
GUID_DXGKDDI_POWER_MANAGEMENT_STOPPED
DirectX グラフィックス カーネル サブシステムがランタイム電源管理のためにデバイスの登録を解除する直前に使用されます。 この GUID を使用してこの関数を呼び出した後、ディスプレイ ミニポート ドライバーは、電源ランタイム関数を呼び出す必要はありません。

同期

この関数は、複数の実行スレッドから同時に呼び出すことができます。

オペレーティング システムでは、この関数が、スレッド処理と同期のゼロ レベル で定義されているゼロ レベルの同期モード従っていることを保証します。

必要条件

要件 価値
サポートされる最小クライアント Windows 8
サポートされる最小サーバー Windows Server 2012
ターゲット プラットフォーム デスクトップ
ヘッダー d3dkmddi.h (D3dkmddi.h を含む)
IRQL <=DISPATCH_LEVEL

関連項目

DXGKARG_QUERYADAPTERINFO

DXGK_DRIVERCAPS

DxgkCbSetPowerComponentActive

DxgkCbSetPowerComponentLatency

DxgkCbSetPowerComponentResidency

DxgkDdiAddDevice