PDXGK_INITIAL_COMPONENT_STATE回调函数 (d3dkmthk.h)
PDXGK_INITIAL_COMPONENT_STATE 回调函数由客户端驱动程序实现以初始化组件状态。
语法
PDXGK_INITIAL_COMPONENT_STATE PdxgkInitialComponentState;
void PdxgkInitialComponentState(
PVOID GraphicsDeviceHandle,
PVOID PrivateHandle,
ULONG ComponentIndex,
BOOLEAN IsBlockingType,
UINT InitialFState,
GUID ComponentGuid,
UINT PowerComponentMappingFlag
)
{...}
参数
GraphicsDeviceHandle
图形设备的句柄。
PrivateHandle
任何回调中提供的不透明句柄。 此句柄必须全局唯一,因此应使用指向调用驱动程序的 PDO 或 FDO 的指针。
ComponentIndex
组件的索引。 通常,这是图形适配器使用的索引。 例外情况是链接显示适配器(LDA)方案,其中 ComponentIndex 的 HIWORD 指示适配器索引,就像在 LDA 方案中调用图形内核调用图形驱动程序时一样。
IsBlockingType
如果组件为“阻止”,则设置 TRUE;例如,图形驱动程序已将组件报告为 ActiveInD3 = 0。 否则,请设置 FALSE。
InitialFState
调用时 ComponentIndex 表示的组件的 F 状态。 如果 F 状态转换当前正在进行,PreNotification=FALSE
的 PDXGK_FSTATE_NOTIFICATION 完成通知回调将在转换完成后一段时间后执行。 根据时间,可能会出现 PreNotification=TRUE
回调。 如果确实发生,它将在完成通知回调之前。
ComponentGuid
GUID 值,它是此组件的图形驱动程序在其 DXGKQAITYPE_POWERCOMPONENTINFO 响应期间报告的组件 GUID。
PowerComponentMappingFlag
HIWORD 指示这是自定义驱动程序定义的值(0 = 否,1 = 是)。 如果为 0(否),则低字表示 DXGKMT_POWER_SHARED_TYPE 枚举值。 这些值是由图形驱动程序在其 DXGKQAITYPE_POWERCOMPONENTINFO 响应期间设置的,使用添加到 DXGK_POWER_COMPONENT_MAPPING的 DXGK_POWER_COMPONENT_SHARED_DESC 类型。
返回值
没有
言论
共享电源注册(IoCallDriver 调用),如果提供了 PDXGK_INITIAL_COMPONENT_STATE,则为图形驱动程序报告的每个共享电源组件调用一次。 此回调的行为如下:
- 这些调用是 IoCallDriver 返回之前发生的重新进入调用
- 这些调用发生在 DISPATCH_LEVEL,这要求驱动程序代码和数据是内存驻留
- 由于这些回调发生在 IoCallDriver 返回之前,DXGK_GRAPHICSPOWER_REGISTER_OUTPUT 尚未填充
- 如果当前正在进行任何 F 状态转换,则通知后 PDXGK_FSTATE_NOTIFICATION 将向最终状态的驱动程序发出警报。 在 InitialComponentStateCb 调用之后,将保证发生此类调用。 但是,在 IoCallDriver 需要同步之前,可能会发生此类回调。 旋转锁应围绕 ioCallDriver 和 PDXGK_FSTATE_NOTIFICATION 处理程序。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8 |
支持的最低服务器 | Windows Server 2012 |
标头 | d3dkmthk.h |
IRQL | DISPATCH_LEVEL |