Share via


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
対象プラットフォーム デスクトップ
Header d3dkmddi.h (D3dkmddi.h を含む)
IRQL <=DISPATCH_LEVEL

こちらもご覧ください

DXGKCB_SETPOWERCOMPONENTACTIVE

DxgkDdiStartDevice

DXGKRNL_INTERFACE