D3DDDI_ESCAPEFLAGS结构(d3dukmdt.h)

D3DDDI_ESCAPEFLAGS 结构标识用户模式显示驱动程序(UMD)(或客户端驱动程序)如何与内核模式显示微型端口驱动程序(KMD)共享信息。

语法

typedef struct _D3DDDI_ESCAPEFLAGS {
  union {
    struct {
      UINT HardwareAccess : 1;
      UINT DeviceStatusQuery : 1;
      UINT ChangeFrameLatency : 1;
      UINT NoAdapterSynchronization : 1;
#if ...
      UINT Reserved : 1;
      UINT VirtualMachineData : 1;
      UINT DriverKnownEscape : 1;
      UINT DriverCommonEscape : 1;
#if ...
      UINT Reserved2 : 24;
#else
      UINT Reserved2 : 26;
#endif
#elif
      UINT Reserved : 28;
#elif
      UINT Reserved : 29;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  };
} D3DDDI_ESCAPEFLAGS;

成员

HardwareAccess

一个 UINT 值,该值指定 OS 是否对 DxgkDdiEscape 调用执行 第二级别的同步。 如果驱动程序需要第二级同步,并且未设置 HardwareAccess 标志,则调用驱动程序的 DxgkDdiEscape 函数应失败。

从 Windows 8.1 开始,如果设置了此成员,DeviceStatusQuery 并且 ChangeFrameLatency 必须设置为零。

DeviceStatusQuery

如果已设置,则调用 pfnEscapeCb 函数并 D3DDDICB_ESCAPE时。PrivateDriverDataSize 成员 sizeof(D3DDDI_EXECUTIONSTATEESCAPE),Direct3D 运行时将解释 D3DDDICB_ESCAPEpPrivateDriverData 成员作为指向包含 D3DDDI_EXECUTIONSTATEESCAPE 结构的缓冲区的指针。 此外,运行时通过将请求的信息写入提供的缓冲区来处理 pfnEscapeCb 作为状态查询,而不是将 DxgkDdiEscape 调用发送到 KMD。

如果设置了此成员,HardwareAccess,并且 ChangeFrameLatency 必须设置为零。

从 Windows 8.1 开始支持。

如果作系统在 Windows 8.1 之前,或者用户模式驱动程序是使用 OpenAdapter Xxx 初始化的,则作系统将忽略此成员,pOpenData->Interface 成员指示 Direct3D 版本 8 或更高版本。

ChangeFrameLatency

如果已设置,则调用 pfnEscapeCb 函数时,D3DDDICB_ESCAPEPrivateDriverDataSize 成员 sizeof(D3DDDI_FRAMELATENCYESCAPE),并且还满足备注中的条件,Direct3D 运行时将解释 D3DDDICB_ESCAPEpPrivateDriverData 成员作为指向包含 D3DDDI_FRAMELATENCYESCAPE 结构的缓冲区的指针。 此外,运行时将 pfnEscapeCb 作为更改 DirectX 图形内核内核子系统最大帧延迟的请求处理,方法是将请求的信息写入提供的缓冲区,而不是将 DxgkDdiEscape 调用发送到 KMD。

如果设置了此成员,HardwareAccessDeviceStatusQuery 必须设置为零。

从 Windows 8.1 开始支持。

如果作系统在 Windows 8.1 之前,或者用户模式驱动程序是使用 OpenAdapter Xxx 初始化的,则作系统将忽略此成员,pOpenData->Interface 成员指示 Direct3D 版本 8 或更高版本。

NoAdapterSynchronization

Reserved

此成员是保留的,应设置为零。

VirtualMachineData

指示从虚拟机调用 DxgkDdiEscape。 无法从用户模式设置此标志。 从 WDDM 2.2 开始支持。

DriverKnownEscape

驱动程序专用数据指向已知结构。

DriverCommonEscape

专用数据指向 D3D 运行时定义的结构。

Reserved2

此成员是保留的,应设置为零。

Value

包含在D3DDDI_ESCAPEFLAGS中的成员,可以保存一个 32 位值,用于标识如何共享信息。

言论

如果设置了 ChangeFrameLatency,则仅当:

  • KMD 负责单个供应商提供的链接适配器配置(LDA)。
  • 应用在其生存期内的某个时间点拥有显示器的独占全屏所有权。
  • 应用尚未重写默认的最大帧延迟值 3。

如果未满足这些条件,pfnEscapeCb 调用将返回E_INVALIDARG错误代码。

要求

要求 价值
最低支持的客户端 Windows Vista (WDDM 1.0)
标头 d3dukmdt.h (包括 D3dumddi.h, D3dkmddi.h)

另请参阅

D3DDDICB_ESCAPE

D3DDDI_EXECUTIONSTATEESCAPE

D3DDDI_FRAMELATENCYESCAPE

DXGKARG_ESCAPE

DxgkDdiEscape

pfnEscapeCb