共用方式為


DXGK_DEVICEINFO結構(d3dkmddi.h)

DXGK_DEVICEINFO 結構描述Microsoft DirectX 圖形核心子系統需要來自顯示迷你埠驅動程序的參數。

語法

typedef struct _DXGK_DEVICEINFO {
  [out] UINT                 DmaBufferSize;
  [out] UINT                 DmaBufferSegmentSet;
  [out] UINT                 DmaBufferPrivateDataSize;
  [out] UINT                 AllocationListSize;
  [out] UINT                 PatchLocationListSize;
  [out] DXGK_DEVICEINFOFLAGS Flags;
} DXGK_DEVICEINFO;

成員

[out] DmaBufferSize

透過直接記憶體存取 (DMA) 傳送至硬體的硬體命令緩衝區大小,以位元組為單位。

建立裝置之後,DMA 緩衝區可以成長和縮小;不過,DMA 緩衝區永遠不能壓縮小於 DmaBufferSize 指定的起始大小。

[out] DmaBufferSegmentSet

應該讓圖形處理單位 (GPU) 存取 DMA 緩衝區之區段的識別碼。

[out] DmaBufferPrivateDataSize

與每個 DMA 緩衝區相關聯的驅動程式常駐私人數據結構大小,以位元組為單位。 此私人數據結構的記憶體是從非分頁集區配置。 如果驅動程式在 DmaBufferPrivateDataSize中指定零,則不會配置任何記憶體給私人數據結構。

建立 DMA 緩衝區時,與 DMA 緩衝區相關聯的私用數據結構會初始化為零。 在 DMA 緩衝區的存留期間,影片記憶體管理員永遠不會存取與 DMA 緩衝區相關聯的私用數據結構。

[out] AllocationListSize

配置陣列中的起始項目數(也就是 DXGK_ALLOCATIONLIST 結構的陣列)。 此數目是驅動程式要求在 pAllocationList 中 成員 DXGKARG_PRESENTDXGKARG_RENDER 結構呼叫驅動程式 DxgkDdiPresentDxgkDdiRender 函式的起始配置數目。

配置清單可以在裝置建立後成長和縮小;不過,配置清單永遠不能壓縮小於 AllocationListSize 指定的起始大小。

[out] PatchLocationListSize

在修補程式位置陣列中,裝置在使用者模式和核心模式中起始的元素數目(也就是 D3DDDI_PATCHLOCATIONLIST 結構陣列)。 此數位是驅動程式要求位於 pPatchLocationListIn pPatchLocationListIn 中 呼叫其 DxgkDdiRender 函式中 DXGKARG_RENDER 結構成員的開始數目。

修補程式位置清單可以在建立裝置之後成長和縮小;不過,修補程式位置清單永遠不能壓縮小於 PatchLocationListSize 指定的起始大小。

[out] Flags

DXGK_DEVICEINFOFLAGS 結構,可識別裝置相關信息的位字段旗標。

言論

顯示迷你埠驅動程式會指定 DmaBufferSizeAllocationListSize 成員的值,以確保下列各項:

  • DirectX 圖形子系統只能使用一個 DMA 緩衝區來顯示(使用顯示器迷你埠驅動程式的 DxgkDdiPresent 函式),在所有案例中至少一個 RECT 結構。
  • DMA 和配置清單緩衝區的大小足以容納至少一個無法分割到多個緩衝區的命令。
  • DMA 和配置清單緩衝區的大小足以避免設定和 DMA 額外負荷。
顯示迷你埠驅動程式只能在 DmaBufferSegmentSet 成員中指定光圈區段;如果驅動程式指定記憶體區段,就會發生裝置建立失敗。

如果驅動程式將 DmaBufferSegmentSet 設為 0,則視訊記憶體管理員會配置連續分頁鎖定記憶體,這是對應 DMA 緩衝區的寫入合併記憶體。 因此,GPU 必須在不允許 AGP 光圈外發生 AGP 傳輸的系統上使用 PCI 循環來存取 DMA 緩衝區。

要求

要求 價值
最低支援的用戶端 Windows Vista
標頭 d3dkmddi.h (包括 D3dkmddi.h)

另請參閱

D3DDDI_PATCHLOCATIONLIST

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_DEVICEINFOFLAGS

DxgkDdiCreateDevice

DxgkDdiPresent

DxgkDdiRender