DXGI1_1_DDI_BASE_FUNCTIONS 结构 (dxgiddi.h)

DXGI1_1_DDI_BASE_FUNCTIONS 结构包含指向函数的指针,用户模式显示驱动程序可以实现这些功能来执行低级别任务,例如向输出显示呈现的帧、控制伽玛、获取有关共享和 GDI 可互操作图面的通知以及管理全屏切换。

语法

typedef struct DXGI1_1_DDI_BASE_FUNCTIONS {
  HRESULT()(DXGI_DDI_ARG_PRESENT *) * pfnPresent;
  HRESULT()(DXGI_DDI_ARG_GET_GAMMA_CONTROL_CAPS *) * pfnGetGammaCaps;
  HRESULT()(DXGI_DDI_ARG_SETDISPLAYMODE *) * pfnSetDisplayMode;
  HRESULT()(DXGI_DDI_ARG_SETRESOURCEPRIORITY *) * pfnSetResourcePriority;
  HRESULT()(DXGI_DDI_ARG_QUERYRESOURCERESIDENCY *) * pfnQueryResourceResidency;
  HRESULT()(DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES *) * pfnRotateResourceIdentities;
  HRESULT()(DXGI_DDI_ARG_BLT *) * pfnBlt;
  HRESULT()(DXGI_DDI_ARG_RESOLVESHAREDRESOURCE *) * pfnResolveSharedResource;
} DXGI1_1_DDI_BASE_FUNCTIONS;

成员

pfnPresent

指向驱动程序的 PresentDXGI 函数的指针。

pfnGetGammaCaps

指向驱动程序的 GetGammaCapsDXGI 函数的指针。

pfnSetDisplayMode

SetDisplayModeDXGI 函数切换到 GDI 桌面不支持的显示模式或主模式。

Microsoft Direct3D 运行时调用 SetDisplayModeDXGI 以切换到 GDI 桌面不支持的显示模式或主模式。 以下列表描述了此类主要内容的示例:

  • 使用每通道 10 位 (10:10:10:2 创建的初选) 显示和呈现目标格式 (例如,D3DFMT_A2R10G10B10)
  • 在扫描时执行多重采样的多采样主样本
  • 全屏 Microsoft DirectX 版本 10 应用程序使用的持久主线
Direct3D 运行时调用用户模式显示驱动程序的 CreateResource (D3D10) 函数来创建要扫描的主副本。但是,驱动程序应将硬件编程为仅在调用其 SetDisplayModeDXGI 函数时扫描掉。 因此,运行时将 pDisplayModeData 参数指向的 DXGI_DDI_ARG_SETDISPLAYMODE 结构的 hResourceSubResourceIndex 成员设置为通过调用驱动程序的 CreateResourceD3D10 函数创建的主节点。 然后,驱动程序应将 hResourceSubResourceIndex 表示的主分配句柄转换为主分配句柄。 驱动程序进行此转换后,驱动程序应在调用 pfnSetDisplayModeCb 函数时传递生成的句柄,然后该函数会启动对显示微型端口驱动程序的 DxgkDdiCommitVidPn 函数的调用。

用户模式显示驱动程序可以在调用 pfnSetDisplayModeCb 时设置 D3DDDICB_SETDISPLAYMODE 结构的 hPrimaryAllocation 成员,以扫描任何分配。 但是,分配必须标记为主 (即,用户模式显示驱动程序必须在调用 pfnAllocateCb 函数时在 D3DDDI_ALLOCATIONINFO 结构的 Flags 成员中设置位字段标志,以创建分配) 。

pDisplayModeData

指向 DXGI_DDI_ARG_SETDISPLAYMODE 结构的指针,该结构指定用于设置显示模式的参数。

pfnSetResourcePriority

指向驱动程序的 SetResourcePriorityDXGI 函数的指针。

pfnQueryResourceResidency

指向驱动程序的 QueryResourceResidencyDXGI 函数的指针。

pfnRotateResourceIdentities

指向驱动程序的 RotateResourceIdentitiesDXGI 函数的指针。

pfnBlt

指向驱动程序的 BltDXGI 函数的指针。

pfnResolveSharedResource

ResolveSharedResourceDXGI 函数通知用户模式显示驱动程序共享图面的所有权已更改或正在将图面用于 GDI 互操作。

当应用程序调用以下函数之一时,Direct3D 运行时会调用 ResolveSharedResourceDXGI

  • 同步共享图面上的 IDXGIKeyedMutex::ReleaseSynch
  • 用于 GDI 可互操作图面的 IDXGISurface1::GetDC
每当共享图面所有者更改或使用图面进行 GDI 互操作时,运行时都会调用驱动程序的 ResolveSharedResourceDXGI 函数。

驱动程序实现 ResolveSharedResourceDXGI ,以适当管理多个 GPU 方案的资源。 每个资源可以划分为多个要呈现的 GPU 的内存。 驱动程序可以实现 ResolveSharedResourceDXGI 来重新合并每个资源,以便新的资源所有者具有合并的资源。 驱动程序必须刷新可能修改资源的任何部分生成的命令缓冲区。

Windows 7 提供了在 D3D10umddi.h 头文件) 中定义的IS_DXGI1_1_BASE_FUNCTIONS宏 (,以允许用户模式显示驱动程序确定它是在调用其 CreateDevice (D3D10) 函数时接收指向DXGI1_1_DDI_BASE_FUNCTIONS还是DXGI_DDI_BASE_FUNCTIONS结构的指针。 DXGI1_1_DDI_BASE_FUNCTIONS结构包括 pfnResolveSharedResource 成员,驱动程序可以使用指向其 ResolveSharedResourceDXGI 函数的指针填充该成员。 如果IS_DXGI1_1_BASE_FUNCTIONS返回 TRUE,则驱动程序应接收指向DXGI_DDI_BASE_ARGS 结构的 pDXGIDDIBaseFunctions 成员(D3D10DDIARG_CREATEDEVICE 结构的 DXGIBaseDDI 成员指定的)DXGI1_1_DDI_BASE_FUNCTIONS 结构的指针。 否则,如果IS_DXGI1_1_BASE_FUNCTIONS返回 FALSE,驱动程序应接收指向DXGI_DDI_BASE_FUNCTIONS结构的指针。 Windows 7 提供IS_DXGI1_1_BASE_FUNCTIONS宏,以允许较新版本的驱动程序在较旧版本的运行时上运行。 然后,驱动程序可以确定如果尝试使用指向 ResolveSharedResourceDXGI 函数的指针填充 DXGI1_1_DDI_BASE_FUNCTIONSpfnResolveSharedResource 成员,它们是否会损坏内存。

pResourceData

指向 DXGI_DDI_ARG_RESOLVESHAREDRESOURCE 结构的指针,该结构指定显示设备和与显示设备关联的表面的参数。

注解

Windows 7 提供在 D3D10umddi.h 头文件) 中定义的IS_DXGI1_1_BASE_FUNCTIONS宏 (,以允许用户模式显示驱动程序确定它是在调用其 CreateDevice (D3D10) 函数时接收指向DXGI1_1_DDI_BASE_FUNCTIONS还是DXGI_DDI_BASE_FUNCTIONS结构的指针。 DXGI1_1_DDI_BASE_FUNCTIONS结构包括 pfnResolveSharedResource 成员,驱动程序可以使用指向其 ResolveSharedResourceDXGI 函数的指针填充该成员。 如果IS_DXGI1_1_BASE_FUNCTIONS返回 TRUE,则驱动程序应接收指向DXGI_DDI_BASE_ARGS 结构的 pDXGIDDIBaseFunctions 成员(D3D10DDIARG_CREATEDEVICE 结构的 DXGIBaseDDI 成员指定的)DXGI1_1_DDI_BASE_FUNCTIONS 结构的指针。 否则,如果IS_DXGI1_1_BASE_FUNCTIONS返回 FALSE,驱动程序应接收指向DXGI_DDI_BASE_FUNCTIONS结构的指针。 Windows 7 提供IS_DXGI1_1_BASE_FUNCTIONS宏,以允许较新版本的驱动程序在较旧版本的运行时上运行。 然后,如果驱动程序尝试使用指向 ResolveSharedResourceDXGI 函数的指针填充 DXGI1_1_DDI_BASE_FUNCTIONSpfnResolveSharedResource 成员,则驱动程序可以确定是否会损坏内存。

要求

要求
最低受支持的客户端 从 Windows 7 操作系统开始支持DXGI1_1_DDI_BASE_FUNCTIONS。
标头 dxgiddi.h (包括 D3d10umddi.h)

另请参阅

BltDXGI

CreateDevice (D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS

GetGammaCapsDXGI

PresentDXGI

QueryResourceResidencyDXGI

ResolveSharedResource

ResolveSharedResourceDXGI

RotateResourceIdentitiesDXGI

SetDisplayModeDXGI

SetResourcePriorityDXGI