Share via


DXGI1_1_DDI_BASE_FUNCTIONS 結構 (dxgiddi.h)

DXGI1_1_DDI_BASE_FUNCTIONS 結構包含使用者模式顯示驅動程式可以實作的函式指標,以執行低階工作,例如將轉譯的畫面呈現至輸出、控制 Gamma、取得共用和 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:10:2) 顯示和轉譯目標 (格式,例如,D3DFMT_A2R10G10B10)
  • 在掃描時執行多重取樣的主要複本
  • 全螢幕 Microsoft DirectX 第 10 版應用程式使用的持續性主要複本
Direct3D 運行時間會呼叫使用者模式顯示驅動程式的 CreateResource (D3D10) 函式,以建立要掃描的主要複本。不過,驅動程式應該只在呼叫 其 SetDisplayModeDXGI 函式時,才將硬體程式設計為要掃描。 因此,運行時間會將 pDisplayModeData 參數指向之DXGI_DDI_ARG_SETDISPLAYMODE結構的 hResourceSubResourceIndex 成員設定為透過呼叫驅動程式 CreateResourceD3D10 函式所建立的主要複本。 驅動程式應該接著將 hResourceSubResourceIndex 代表的主要複本轉譯為主要配置句柄。 驅動程式進行此轉譯之後,驅動程式應該會在 呼叫 pfnSetDisplayModeCb 函式時傳遞產生的句柄,然後起始對 display miniport 驅動程式 的 DxgkDdiCommitVidPn 函式的呼叫。

使用者模式顯示驅動程式可以在呼叫 pfnSetDisplayModeCb 中設定 D3DDDICB_SETDISPLAYMODE 結構的 hPrimaryAllocation 成員,以掃描任何配置。 不過,配置必須標示為主要 (,也就是說,使用者模式顯示驅動程式必須在呼叫 pfnAllocateCb 函式的 Flags 成員中,設定D3DDDI_ALLOCATIONINFO結構的主要位字段旗標,以建立配置) 。

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 提供IS_DXGI1_1_BASE_FUNCTIONS宏 (,其定義於 D3D10umddi.h 頭檔) ,以允許使用者模式顯示驅動程序判斷它是否在呼叫其 CreateDevice (D3D10) 函式時收到DXGI1_1_DDI_BASE_FUNCTIONS指標或DXGI_DDI_BASE_FUNCTIONS結構。 DXGI1_1_DDI_BASE_FUNCTIONS 結構包含 pfnResolveSharedResource 成員,驅動程式可以使用 其 ResolveSharedResourceDXGI 函式的指標填入該成員。 如果IS_DXGI1_1_BASE_FUNCTIONS傳回 TRUE,驅動程式預期會收到D3D10DDIARG_CREATEDEVICE結構指定之 DXGIBaseDDI 成員之 pDXGIDDIBaseFunctions 成員中 DXGI_DDI_BASE_ARGS 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 提供IS_DXGI1_1_BASE_FUNCTIONS宏 (,其定義於 D3D10umddi.h 頭檔) ,以允許使用者模式顯示驅動程式判斷它是否收到DXGI1_1_DDI_BASE_FUNCTIONS或 DXGI_DDI_BASE_FUNCTIONS 結構的指標,以呼叫其 CreateDevice (D3D10) 函式。 DXGI1_1_DDI_BASE_FUNCTIONS 結構包含 pfnResolveSharedResource 成員,驅動程式可以使用 其 ResolveSharedResourceDXGI 函式的指標填入該成員。 如果IS_DXGI1_1_BASE_FUNCTIONS傳回 TRUE,驅動程式預期會收到D3D10DDIARG_CREATEDEVICE結構指定之 DXGIBaseDDI 成員之 pDXGIDDIBaseFunctions 成員中 DXGI_DDI_BASE_ARGS 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_FUNCTIONS的 pfnResolveSharedResource 成員,驅動程式就可以判斷它們是否會損毀記憶體。

規格需求

需求
最低支援的用戶端 從 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