DXGK_SEGMENTDESCRIPTOR 結構 (d3dkmddi.h)

DXGK_SEGMENTDESCRIPTOR 結構包含驅動程式所支援區段的相關信息。

語法

typedef struct _DXGK_SEGMENTDESCRIPTOR {
  [out] PHYSICAL_ADDRESS  BaseAddress;
  [out] PHYSICAL_ADDRESS  CpuTranslatedAddress;
  [out] SIZE_T            Size;
  [out] UINT              NbOfBanks;
  [out] SIZE_T            *pBankRangeTable;
  [out] SIZE_T            CommitLimit;
  [out] DXGK_SEGMENTFLAGS Flags;
} DXGK_SEGMENTDESCRIPTOR;

成員

[out] BaseAddress

區段的基位址,取決於圖形處理單位 (GPU) 。 分割區中分頁之視訊記憶體管理員分頁的配置實體位址會指派 GPU 位址,該位址與 BaseAddress 所指定的基位址位移。

視訊記憶體管理員會忽略 AGP 類型光圈區段的基位址 (其中 Agp 位欄位字段旗標是在 Flags 成員) 中指定,而是使用 AGP 光圈內區段的實際實體位址,如 GPU 所在的總線所決定。 在此情況下,驅動程式可以使用直接為配置產生的視訊記憶體管理員所產生位址,而不需要翻譯。

[out] CpuTranslatedAddress

區段的基位址,相對於 GPU 所連接的總線。 例如,在PCI總線上連接 GPU 時, CpuTranslatedAddress 是PCI基位址快取器所指定之可用範圍的基位址, (BAR) 。 只有在驅動程式在 Flags 成員中設定 CpuVisible 位字段旗標,以指定可存取 CPU 的區段時,驅動程式才會指定此位址。

此成員會忽略光圈區段,包括 AGP 類型光圈區段。 唯一的例外狀況是在呼叫 pfnLockCb 函式時,當使用者模式顯示驅動程式未設定主要配置 (的替代虛擬位址時,即在呼叫 pfnLockCb 函式期間,驅動程式尚未在D3DDDICB_LOCKFLAGS 結構的 Flags 成員中設定 UseAlternateVA 時) 。

在視訊記憶體管理員將虛擬位址對應至實體範圍之前,視訊記憶體管理員會根據總線的 CPU 檢視轉譯此實體位址,並通知驅動程式有關作業的資訊,讓驅動程式可以設定光圈來存取指定位置的區段內容。

[out] Size

區段的大小,以位元組為單位。 此大小必須是原生主機頁面大小的倍數 (,例如 x86 架構上的 4 KB) 。

對於 AGP 類型光圈區段 (其中 Agp 位字段旗標是在 Flags 成員) 中指定,視訊記憶體管理員會盡可能配置最大光圈空間,因此會忽略此成員。

[out] NbOfBanks

如果銀行 (使用區段中的銀行數目,也就是如果 Flags 成員) 中設定 UseBanking 位字段旗標,則為區段中的銀行數目。

[out] pBankRangeTable

值的陣列,表示分隔區段中每個銀行的範圍。 只有在驅動程式也設定 Flags 成員中的 UseBanking 位字段旗標時,驅動程式才會指定這個數位。

陣列會透過 NbOfBanks 的銀行 (指定第一個銀行的結尾位址,也就是每個銀行) 的區段結尾位移。 請注意:

  • 銀行是連續的。

  • 第一個銀行從區段的位移零開始。

  • 最後一個銀行會在區段結尾結束,因此不需要驅動程式來指定最後一個銀行的結束位址。

[out] CommitLimit

可認可至區段的最大位元元組數目。 對於記憶體區段,認可限制一律與 [大小 ] 成員中指定的區段大小相同。 對於光圈區段,驅動程式可以限制可認可到少量物理記憶體系統上區段的記憶體數量。

[out] Flags

DXGK_SEGMENTFLAGS 結構,可識別區段的位字段旗標的屬性。

請注意,對於 AGP 類型光圈區段,驅動程式必須獨佔設定DXGK_SEGMENTFLAGS包含之等位結構 Agp 成員。 雖然 AGP 類型光圈區段是一個光圈,而且可以供 CPU 存取,但如果已設定任何其他成員,配接器將無法初始化。

規格需求

需求
最低支援的用戶端 Windows Vista
標頭 d3dkmddi.h (include D3dkmddi.h)

另請參閱

D3DDDICB_LOCKFLAGS

DXGKARG_QUERYADAPTERINFO

DXGK_ALLOCATIONINFO

DXGK_QUERYSEGMENTIN

DXGK_QUERYSEGMENTOUT

DXGK_SEGMENTFLAGS

DxgkDdiQueryAdapterInfo

pfnLockCb