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

命令緩衝區開頭的指標。

注意 呼叫 DxgkDdiRender 時,顯示迷你埠驅動程式必須驗證緩衝區。 如需驅動程式如何存取此成員的重要資訊,請參閱 DxgkDdiRender 中的備註。
 

[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結構陣列。

注意 呼叫 DxgkDdiRender 時,顯示迷你埠驅動程式必須驗證緩衝區。 如需驅動程式如何存取此成員的重要資訊,請參閱 DxgkDdiRender 中的備註。
 

[in] PatchLocationListInSize

pPatchLocationListIn 所指定修補程式位置清單中的元素數目。

[in/out] pPatchLocationListOut

顯示迷你埠驅動程式填入的修補程式位置清單 D3DDDI_PATCHLOCATIONLIST 結構的陣列。 在驅動程式從其 DxgkDdiRender 或 DxgkDdiRenderKm 函式的呼叫傳回之前,驅動程式必須將 pPatchLocationListOut 設定為下一個D3DDDI_PATCHLOCATIONLIST元素,該元素後面接著驅動程式更新的最後一個D3DDDI_PATCHLOCATIONLIST元素。

[in] PatchLocationListOutSize

pPatchLocationListOut 所指定修補程式位置清單中的元素數目。 顯示迷你埠驅動程式不需要填滿整個清單中的所有元素;驅動程式只能使用描述 DMA 緩衝區內修補程式位置所需的元素。

[in/out] MultipassOffset

如果顯示迷你埠驅動程式的 DxgkDdiRenderDxgkDdiRenderKm 函式必須傳回 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)

另請參閱

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DxgkDdiRender

DxgkDdiRenderKm

pfnRenderCb