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 指示支持时,操作系统才会调用 DxgkDdiPowerRuntimeControlRequest。SupportRuntimePowerManagement 为 TRUE。
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 |
另请参阅
DxgkCbSetPowerComponentLatency