支持 DXGI DDI
若要支持 Microsoft DirectX Graphics Infrastructure (DXGI) 设备驱动程序接口 (DDI) ,用户模式显示驱动程序必须包含 Dxgiddi.h 头文件。 Dxgiddi.h 还包括 Dxgitype.h 头文件,其中包含与应用程序级 DXGI 构造共享的定义。 Dxgiddi.h 定义了多个用户模式显示驱动程序入口点和 DXGI 回调函数,驱动程序可以使用该函数与内核通信, (包括显示微型端口驱动程序) 。
Microsoft Direct3D 运行时提供对 D3D10DDIARG_CREATEDEVICE 结构的 DXGIBaseDDI 成员在调用 CreateDevice (D3D10) 函数时指向的DXGI_DDI_BASE_ARGS结构中的 DXGI DDI 的访问权限。 用户模式显示驱动程序提供指向 DXGI 函数的指针。
驱动程序通过 DXGI_DDI_BASE_ARGS的 pDXGIDDIBaseFunctionsXxx 成员所指向的结构成员来实现这些函数。 驱动程序应记录指向 dxGI 回调函数表的指针,DXGI_DDI_BASE_ARGS的 pDXGIBaseCallbacks 成员指向该函数表供以后使用。 驱动程序应记录指向 DXGI 回调函数表的指针,而不是记录指向 DXGI 回调函数的单个指针,因为只要用户模式显示驱动程序中没有线程,Direct3D 运行时就可以更改回调函数的地址。
软件光栅器还有进一步的 DXGI 用户模式显示驱动程序要求。 更具体地说,这种用户模式显示驱动程序 (,任何不支持与图形适配器) 上的 Direct3D 版本 9 DDI 实现共享的硬件的驱动程序都必须从其 CreateDevice (D3D10) 函数返回DXGI_STATUS_NO_REDIRECTION值而不是S_OK值。 此返回值向 DXGI 指示它不应使用共享资源表示路径来影响与桌面窗口管理器 (DWM) 的通信。 当调用共享资源函数 (即 CreateResource (D3D10) 和 OpenResource (D3D10) 函数时,将创建 共享资源 表示路径,) 设置D3D10_DDI_RESOURCE_MISC_SHARED标志。 但是,DXGI 应改用与交换链相关的技术,该交换链的缓冲区仅适用于 CPU。 例如,DXGI 应通过共享资源表示路径以外的方式将呈现的数据从后台缓冲区移动到桌面。 在这种情况下,DXGI 实际上调用驱动程序的 PresentDXGI 函数来移动呈现的数据,而不是与 DWM 的通信。
Direct3D 版本 10 DXGI 函数
本部分介绍用户模式显示驱动程序 DLL 提供给 Microsoft Direct3D 版本 10 运行时的 Microsoft DirectX 图形基础结构 (DXGI) 函数。 驱动程序在调用用户模式显示驱动程序的 CreateDevice (D3D10 ) 函数时,通过 DXGI_DDI_BASE_FUNCTIONS 结构的成员提供指向 DXGI 函数的指针。
BltDXGI:GetGammaCapsDXGI
PresentDXGI:QueryResourceResidencyDXGI
ResolveSharedResourceDXGI:RotateResourceIdentitiesDXGI
SetDisplayModeDXGI:SetResourcePriorityDXGI
Direct3D 版本 11.1 DXGI 函数
本部分介绍为 Microsoft Direct3D 版本 11.1 运行时添加的用户模式显示驱动程序实现的 Microsoft DirectX 图形基础结构 (DXGI) 函数。 Direct3D 11.1 随 Windows 8 一起引入。
当运行时调用 CreateDevice (D3D10) 时,用户模式显示驱动程序 DLL 导出 OpenAdapter10_2 函数,并通过 D3D10_2DDI_ADAPTERFUNCS 结构的成员提供指向适配器特定函数的指针。
驱动程序在调用用户模式显示驱动程序的特定于适配器的 CreateDevice (D3D10) 函数时,通过 DXGI1_2_DDI_BASE_FUNCTIONS 结构的成员提供指向 Direct3D 版本 11.1 DXGI 函数的 指针。
Direct3D 版本 11.2 DXGI 函数
本部分中的参考页介绍由用户模式显示驱动程序实现的 Microsoft DirectX 图形基础结构 (DXGI) 函数,这些功能是为 Microsoft Direct3D 版本 11.2 运行时添加的。 Direct3D 11.2 随 Windows 8.1 一起引入。
当运行时调用 CreateDevice (D3D10) 时,用户模式显示驱动程序 DLL 导出 OpenAdapter10_2 函数,并通过 D3D10_2DDI_ADAPTERFUNCS 结构的成员提供指向适配器特定函数的指针。
驱动程序在调用用户模式显示驱动程序的特定于适配器的 CreateDevice (D3D10) 函数时,通过 DXGI1_3_DDI_BASE_FUNCTIONS 结构的成员提供指向 Direct3D 版本 11.2 DXGI 函数的指针。
PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAYCB: PFNDDXGIDDI_PRESENTCB
PFNDDXGIDDI_SUBMITPRESENTBLTTOHWQUEUECB: PFNDDXGIDDI_SUBMITPRESENTTOHWQUEUECB
注意
Direct3D 11.2 运行时支持的其他 DXGI 函数包含在 用户模式驱动程序实现的多平面覆盖函数部分中。