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 でこの関数が呼び出されると、ディスプレイ ミニポート ドライバーは次の関数を呼び出すことができます。
GUID_DXGKDDI_POWER_MANAGEMENT_STARTED
DirectX グラフィックス カーネル サブシステムがランタイム電源管理を開始した後に使用されます。 この GUID を使用してこの関数を呼び出した後、ディスプレイ ミニポート ドライバーは、任意の電源ランタイム関数を呼び出すことができます。
GUID_DXGKDDI_POWER_MANAGEMENT_STOPPED
DirectX グラフィックス カーネル サブシステムがランタイム電源管理のためにデバイスの登録を解除する直前に使用されます。 この GUID を使用してこの関数を呼び出した後、ディスプレイ ミニポート ドライバーは電源ランタイム関数を呼び出さないでください。

同期

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

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

要件

   
サポートされている最小のクライアント Windows 8
サポートされている最小のサーバー Windows Server 2012
対象プラットフォーム デスクトップ
Header d3dkmddi.h (D3dkmddi.h を含む)
IRQL <=DISPATCH_LEVEL

関連項目

DXGKARG_QUERYADAPTERINFO

DXGK_DRIVERCAPS

DxgkCbSetPowerComponentActive

DxgkCbSetPowerComponentLatency

DxgkCbSetPowerComponentResidency

DxgkDdiAddDevice