DXGKDDIPOWERRUNTIMECONTROLREQUEST 回调函数 (d3dkmddi.h)

由电源引擎插件 (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

指向 GUID 的指针,该 GUID 定义 PEP 控制请求的含义。 有关详细信息,请参阅“备注”。

InBuffer

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

InBufferSize

InBuffer 指向的缓冲区的大小(以字节为单位)。

OutBuffer

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

OutBufferSize

OutBuffer 指向的缓冲区的大小(以字节为单位)。

BytesReturned

指向缓冲区的可选指针,该缓冲区包含显示微型端口驱动程序写入到输出缓冲区的字节数。

返回值

如果成功,则返回STATUS_SUCCESS。 否则,它将返回 Ntstatus.h 中定义的错误代码之一。

注解

仅当显示微型端口驱动程序通过设置 DXGK_DRIVERCAPS 指示支持时,操作系统才会调用 DxgkDdiPowerRuntimeControlRequestSupportRuntimePowerManagementTRUE

Power Engine 插件使用的 GUID (PEP)

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
目标平台 桌面
标头 d3dkmddi.h (包括 D3dkmddi.h)
IRQL <=DISPATCH_LEVEL

另请参阅

DXGKARG_QUERYADAPTERINFO

DXGK_DRIVERCAPS

DxgkCbSetPowerComponentActive

DxgkCbSetPowerComponentLatency

DxgkCbSetPowerComponentResidency

DxgkDdiAddDevice