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 方案中的 F 状态时一样。
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 |