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 |