DXGK_CONTEXTINFO結構(d3dkmddi.h)
DXGK_CONTEXTINFO 結構描述裝置內容。
語法
typedef struct _DXGK_CONTEXTINFO {
UINT DmaBufferSize;
UINT DmaBufferSegmentSet;
UINT DmaBufferPrivateDataSize;
UINT AllocationListSize;
UINT PatchLocationListSize;
UINT Reserved;
DXGK_CONTEXTINFO_CAPS Caps;
ULONG PagingCompanionNodeId;
} DXGK_CONTEXTINFO;
成員
DmaBufferSize
透過直接記憶體存取 (DMA) 傳送至圖形處理單位 (GPU) 的硬體命令緩衝區大小,以位元組為單位。
建立內容之後,DMA 緩衝區可以成長和縮小;不過,DMA 緩衝區永遠不能壓縮小於 DmaBufferSize 指定的起始大小。
DmaBufferSegmentSet
DMA 緩衝區應該可供 GPU 存取之區段的標識碼。
DmaBufferPrivateDataSize
與每個 DMA 緩衝區相關聯的驅動程式常駐私人數據結構大小,以位元組為單位。 此私人數據結構的記憶體是從非分頁集區配置。 如果驅動程式在 DmaBufferPrivateDataSize中指定零,則不會配置任何記憶體給私人數據結構。
建立 DMA 緩衝區時,與 DMA 緩衝區相關聯的私用數據結構會初始化為零。 在 DMA 緩衝區的存留期間,影片記憶體管理員永遠不會存取與 DMA 緩衝區相關聯的私用數據結構。
AllocationListSize
配置陣列中的起始項目數(也就是 DXGK_ALLOCATIONLIST 結構的陣列)。 這個數位是驅動程式要求在 pAllocationList 中 的起始配置數目,DXGKARG_PRESENT 成員和 DXGKARG_RENDER 結構的成員,分別呼叫驅動程式的 DxgkDdiPresent 和 DxgkDdiRender 函式。
建立內容之後,配置清單可以成長和縮小;不過,配置清單永遠不能壓縮小於 AllocationListSize 指定的起始大小。
PatchLocationListSize
在修補程式位置陣列中,裝置在使用者模式和核心模式中起始的元素數目(也就是 D3DDDI_PATCHLOCATIONLIST 結構陣列)。 這個數位是驅動程式要求位於 pPatchLocationListIn pPatchLocationListIn 呼叫其 DxgkDdiRender 函式之 DXGKARG_RENDER 結構成員的起始修補位置數目。
建立內容之後,修補程式位置清單可以成長和縮小;不過,修補程式位置清單永遠不能壓縮小於 PatchLocationListSize 指定的起始大小。
Reserved
這個成員是保留的,而且應該設定為零。
此成員從 Windows 7 開始提供。
Caps
描述內容所支持的選擇性功能。
從 Windows 10 開始支援。
PagingCompanionNodeId
指定要用於此內容分頁隨附之引擎的以零起始的引擎標識碼。
從 Windows 10 開始支援。
言論
顯示迷你埠驅動程式會指定 DmaBufferSize 和 AllocationListSize 成員的值,以確保:
- Microsoft DirectX 圖形子系統只能使用一個直接記憶體存取 (DMA) 緩衝區來顯示 (使用顯示器迷你埠驅動程式的 DxgkDdiPresent 函式)至少一個 RECT 結構。
- DMA 和配置清單緩衝區的大小足以容納至少一個無法分割到多個緩衝區的命令。
- DMA 和配置清單緩衝區的大小足以避免設定和 DMA 額外負荷。
如果驅動程式將 DmaBufferSegmentSet 設為 0,則視訊記憶體管理員會配置連續分頁鎖定記憶體,這是對應 DMA 緩衝區的寫入合併記憶體。 因此,GPU 必須在不允許 AGP 光圈外發生 AGP 傳輸的電腦上使用 PCI 循環來存取 DMA 緩衝區。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista |
標頭 | d3dkmddi.h (包括 D3dkmddi.h) |