DXGKARG_RENDER 結構 (d3dkmddi.h)
DXGKARG_RENDER 結構描述從命令緩衝區產生直接記憶體取 (DMA) 緩衝區的成員。
語法
typedef struct _DXGKARG_RENDER {
[in] const VOID *pCommand;
[in] UINT CommandLength;
[out] VOID *pDmaBuffer;
[in] UINT DmaSize;
[in] VOID *pDmaBufferPrivateData;
[in] UINT DmaBufferPrivateDataSize;
[in] DXGK_ALLOCATIONLIST *pAllocationList;
[in] UINT AllocationListSize;
[in] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListIn;
[in] UINT PatchLocationListInSize;
[in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
[in] UINT PatchLocationListOutSize;
[in/out] UINT MultipassOffset;
[in] UINT DmaBufferSegmentId;
[in] PHYSICAL_ADDRESS DmaBufferPhysicalAddress;
} DXGKARG_RENDER;
成員
[in] pCommand
命令緩衝區開頭的指標。
[in] CommandLength
pCommand 指向之命令緩衝區的大小,以位元組為單位。
[out] pDmaBuffer
DMA 緩衝區開頭的指標,其對齊 4 KB。 此緩衝區可以透過 DMA 傳送至圖形硬體。 在顯示迷你埠驅動程式從 DxgkDdiRender 或 DxgkDdiRenderKm 函式傳回之前,驅動程式應該將 pDmaBuffer 設定為下一個空白位元組,後面接著驅動程式寫入的最後一個字節,否則驅動程式應該指向緩衝區空間以外的一個字節 (一個字節,) 沒有可用的空間。 如果緩衝區夠大,這個位置就是正確的。
[in] DmaSize
pDmaBuffer 指向之 DMA 緩衝區的大小,以位元組為單位。
[in] pDmaBufferPrivateData
驅動程式駐留私人數據結構的指標,用於產生 pDmaBuffer 指向的 DMA 緩衝區。
[in] DmaBufferPrivateDataSize
pDmaBufferPrivateData 指向目前作業之私用數據結構中的位元元組數目。
[in] pAllocationList
DMA 緩衝區所參考配置清單的 DXGK_ALLOCATIONLIST 結構數位。 每個參考的配置都應該出現一次,以獲得最佳效能。
[in] AllocationListSize
pAllocationList 所指定的陣列中可用的元素數目,代表要透過 DMA 傳送至圖形硬體的配置規格數目。
[in] pPatchLocationListIn
使用者模式顯示驅動程式在 pfnRenderCb 函式呼叫中提供的修補程式位置清單D3DDDI_PATCHLOCATIONLIST結構陣列。
[in] PatchLocationListInSize
pPatchLocationListIn 所指定修補程式位置清單中的元素數目。
[in/out] pPatchLocationListOut
顯示迷你埠驅動程式填入的修補程式位置清單 D3DDDI_PATCHLOCATIONLIST 結構的陣列。 在驅動程式從其 DxgkDdiRender 或 DxgkDdiRenderKm 函式的呼叫傳回之前,驅動程式必須將 pPatchLocationListOut 設定為下一個D3DDDI_PATCHLOCATIONLIST元素,該元素後面接著驅動程式更新的最後一個D3DDDI_PATCHLOCATIONLIST元素。
[in] PatchLocationListOutSize
pPatchLocationListOut 所指定修補程式位置清單中的元素數目。 顯示迷你埠驅動程式不需要填滿整個清單中的所有元素;驅動程式只能使用描述 DMA 緩衝區內修補程式位置所需的元素。
[in/out] MultipassOffset
如果顯示迷你埠驅動程式的 DxgkDdiRender 或 DxgkDdiRenderKm 函式必須傳回 STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER 以取得新的 DMA 緩衝區,則會指定轉譯作業進度的 UINT 值。 當驅動程式的 DxgkDdiRender 或 DxgkDdiRenderKm 函式第一次使用新的命令緩衝區呼叫時,MultipassOffset 會初始化為零。 在驅動程式從 DxgkDdiRender 或 DxgkDdiRenderKm 呼叫傳回之前,驅動程式會設定此成員來顯示後續 DxgkDdiRender 或 DxgkDdiRenderKm 呼叫的翻譯進度。 DirectX 圖形核心子系統不會進一步變更值。
[in] DmaBufferSegmentId
DMA 緩衝區分頁所在的記憶體區段標識碼。 如果標識符為零,則 DMA 緩衝區無法正確分頁。
[in] DmaBufferPhysicalAddress
PHYSICAL_ADDRESS數據類型 (,定義為LARGE_INTEGER) ,表示 DMA 緩衝區分頁所在的實體位址。 如果實體位址為零,則 DMA 緩衝區無法正確分頁。
備註
針對支援 GDI 硬體加速的顯示器適配卡,從 Windows 7 開始新增 DxgkDdiRenderKm 函式的支援。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
標頭 | d3dkmddi.h (include D3dkmddi.h) |