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 緩衝區就不會正確分頁。
言論
DxgkDdiRenderKm 函式的支援會從 Windows 7 開始新增,以支援 GDI 硬體加速的顯示器適配卡。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista |
標頭 | d3dkmddi.h (包括 D3dkmddi.h) |