DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP回调函数 (dispmprt.h)
由 Windows 显示驱动程序模型 (WDDM) 1.2 或更高版本的显示微型端口驱动程序调用,以从当前开机自测试 (POST) 显示设备或以前运行的 WDDM 驱动程序获取显示信息。
启动显示设备后,驱动程序必须使用此显示信息来优化初始模式更改请求。
语法
DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP DxgkcbAcquirePostDisplayOwnership;
NTSTATUS DxgkcbAcquirePostDisplayOwnership(
[in] HANDLE DeviceHandle,
[out] PDXGK_DISPLAY_INFORMATION DisplayInfo
)
{...}
参数
[in] DeviceHandle
表示显示适配器的句柄。 显示微型端口驱动程序以前在传递给 DxgkDdiStartDevice 的 DXGKRNL_INTERFACE 结构的 DeviceHandle 成员中获取此句柄。
[out] DisplayInfo
指向显示微型端口驱动程序分配 的DXGK_DISPLAY_INFORMATION 结构的指针。 如果 DxgkCbAcquirePostDisplayOwnership 返回STATUS_SUCCESS,则此结构包含用于 POST 操作的当前显示设备的显示信息。
返回值
如果成功,DxgkCbAcquirePostDisplayOwnership 将返回STATUS_SUCCESS。 否则,它将返回 Ntstatus.h 中定义的错误代码之一。
注解
允许的颜色格式
DisplayInfo->ColorFormat 成员必须包含以下两种格式的按位 OR 组合:- D3DDDIFMT_X8R8G8B8
- D3DDDIFMT_A8R8G8B8
视频呈现目标初始化
DisplayInfo->TargetId 成员可能未初始化。 在这种情况下,当前视频目标的标识符 为D3DDDI_ID_UNINITIALIZED。 通常,这发生在系统启动之后。同样,DisplayInfo-AcpiId> 成员可能未初始化。 在这种情况下,ACPI 标识符 AcpiId 的值为零。
在驱动程序到驱动程序升级的情况下,以前的驱动程序将提供目标标识符和 ACPI 标识符。
实施指南
从 WDDM 1.2 开始,显示微型端口驱动程序在调用 DxgkCbAcquirePostDisplayOwnership 时必须遵循以下准则:- DxgkCbAcquirePostDisplayOwnership 函数的入口点是DXGKRNL_INTERFACE结构的一部分。 调用驱动程序的 DxgkDdiStartDevice 函数时,此结构通过 DxgkInterface 参数返回到驱动程序。
- 对于显示微型端口驱动程序来说,调用 DxgkCbAcquirePostDisplayOwnership 是可选的。 但是,如果驱动程序以前未调用 DxgkCbAcquirePostDisplayOwnership,则操作系统仍可能调用设备驱动程序的 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 函数。
- 如果设备启动以响应 即插即用 (PnP) 事件,则显示微型端口驱动程序可以调用 DxgkCbAcquirePostDisplayOwnership。 在这种情况下,驱动程序必须在调用 DxgkDdiStartDevice 函数的上下文中调用 DxgkCbAcquirePostDisplayOwnership。
- 如果设备在休眠状态后恢复 PowerDeviceD0 电源状态,则显示微型端口驱动程序可以调用 DxgkCbAcquirePostDisplayOwnership。 在这种情况下,驱动程序必须在调用 DxgkDdiSetPowerState 函数的上下文中调用 DxgkCbAcquirePostDisplayOwnership。
-
如果驱动程序在 windows 操作系统的 Windows 8 或更高版本下运行,则显示微型端口驱动程序必须仅调用 DxgkCbAcquirePostDisplayOwnership 函数。
注意 显示微型端口驱动程序可以调用 RtlGetVersion 来确定操作系统的版本。
- DxgkCbAcquirePostDisplayOwnership 可能会返回宽度成员设置为零的DXGK_DISPLAY_INFORMATION结构。 这表示当前显示设备无法执行 POST 操作,或者操作系统没有当前 POST 设备的当前显示信息。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
最低受支持的服务器 | Windows Server 2012 |
目标平台 | 桌面 |
标头 | dispmprt.h (包括 Dispmprt.h) |
IRQL | <= APC_LEVEL |