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

表示显示适配器的句柄。 显示微型端口驱动程序以前在传递给 DxgkDdiStartDeviceDXGKRNL_INTERFACE 结构的 DeviceHandle 成员中获取此句柄。

[out] DisplayInfo

指向显示微型端口驱动程序分配 的DXGK_DISPLAY_INFORMATION 结构的指针。 如果 DxgkCbAcquirePostDisplayOwnership 返回STATUS_SUCCESS,则此结构包含用于 POST 操作的当前显示设备的显示信息。

返回值

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

注解

允许的颜色格式

DisplayInfo->ColorFormat 成员必须包含以下两种格式的按位 OR 组合:
  • D3DDDIFMT_X8R8G8B8
  • D3DDDIFMT_A8R8G8B8
如果操作系统报告回 D3DDDIFMT_R8G8B8 格式,则显示微型端口驱动程序应忽略它。

视频呈现目标初始化

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

另请参阅

DXGKRNL_INTERFACE

DXGK_DISPLAY_INFORMATION

DxgkDdiSetPowerState

DxgkDdiStartDevice

DxgkDdiStopDeviceAndReleasePostDisplayOwnership

RtlGetVersion