次の方法で共有


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

カーネル モード ディスプレイ ミニポート ドライバーは、Power Engine プラグイン (PEP) と情報を交換する DXGKCB_POWERRUNTIMECONTROLREQUEST を呼び出します。

構文

DXGKCB_POWERRUNTIMECONTROLREQUEST DxgkcbPowerruntimecontrolrequest;

NTSTATUS DxgkcbPowerruntimecontrolrequest(
  [in]           IN_CONST_HANDLE hAdapter,
  [in]           IN LPCGUID PowerControlCode,
  [in, optional] IN PVOID InBuffer,
  [in]           IN SIZE_T InBufferSize,
  [in, optional] OUT PVOID OutBuffer,
  [in]           IN SIZE_T OutBufferSize,
  [out]          OUT PSIZE_T BytesReturned
)
{...}

パラメーター

[in] hAdapter

ディスプレイ アダプターのハンドル。 ディスプレイ ミニポート ドライバーは、DxgkDdiStartDevice 関数の呼び出しで、DXGKRNL_INTERFACE 構造体の DeviceHandle メンバーからハンドルを受け取ります。

[in] PowerControlCode

ディスプレイ ミニポート ドライバーのコントロール要求の意味を定義する GUID へのポインター。 詳細については、「解説」を参照してください。

[in, optional] InBuffer

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

[in] InBufferSize

InBuffer が指 省略可能なバッファーのサイズ (バイト単位)。 InBuffer 指定されていない場合は、0 に設定します。

[in, optional] OutBuffer

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

[in] OutBufferSize

OutBuffer が指 省略可能なバッファーのサイズ (バイト単位)。 OutBuffer が指定されていない場合 0 に設定します。

[out] BytesReturned

OutBuffer が指すバッファー 返された実際のバイト数。 戻り値は <= OutBufferSizeになります。

戻り値

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

備考

手記

デッドロックの可能性を回避するには、この関数が返されるまで、DXGKCB_SETPOWERCOMPONENTACTIVE 関数を呼び出さないでください。

DXGKCB_XXX 関数は、Dxgkrnlによって実装されます。 このコールバック関数を使用するには、DXGKRNL_INTERFACE経由で DxgkCbPowerRuntimeControlRequest を呼び出します。

ドライバーは、PowerControlCode パラメーターで任意の GUID を使用できますが、D3dkmddi.h で定義されている次の GUID をお勧めします。 これらの GUID を使用すると、ディスプレイ ポート ドライバーは、ドライバーのパフォーマンスの問題をプロファイリングするのに役立つ Windows イベント トレーシング (ETW) イベントを発行できます。

GUID 意味
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 帯域幅を変更しますが、ドライバーは変更が増減しているかどうかを認識しません。

これらの GUID は、ディスプレイ ミニポート ドライバーと PEP の間に通信プロトコルがあることを意味するものではありません。また、ディスプレイ ミニポート ドライバーと PEP の間で渡すことができる値に制限があることを示すものではありません。

必要条件

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

関連項目

DXGKCB_SETPOWERCOMPONENTACTIVE

DxgkDdiStartDevice

DXGKRNL_INTERFACE