DXGKCB_POWERRUNTIMECONTROLREQUEST回调函数 (d3dkmddi.h)

内核模式显示微型端口驱动程序调用 DXGKCB_POWERRUNTIMECONTROLREQUEST 来与 Power Engine 插件 (PEP) 交换信息。

语法

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 的指针,该 GUID 定义显示微型端口驱动程序的控制请求的含义。 有关详细信息,请参阅“备注”。

[in, optional] InBuffer

指向输入缓冲区的可选指针。

[in] InBufferSize

InBuffer 指向的可选缓冲区的大小(以字节为单位)。 如果未提供 InBuffer ,则设置为零。

[in, optional] OutBuffer

指向输出缓冲区的可选指针。

[in] OutBufferSize

OutBuffer 指向的可选缓冲区的大小(以字节为单位)。 如果未提供 OutBuffer ,则设置为零。

[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