DXGK_SEGMENTDESCRIPTOR3 結構 (d3dkmddi.h)

DXGK_SEGMENTDESCRIPTOR3 結構包含驅動程式支援區段的相關信息,該區段是由BIOS保留的記憶體 (所組成,在轉換為低電源狀態期間清除) 和驅動程式保留記憶體。

語法

typedef struct _DXGK_SEGMENTDESCRIPTOR3 {
  [out] DXGK_SEGMENTFLAGS Flags;
  [out] PHYSICAL_ADDRESS  BaseAddress;
  [out] PHYSICAL_ADDRESS  CpuTranslatedAddress;
  [out] SIZE_T            Size;
  [out] UINT              NbOfBanks;
  [out] SIZE_T            *pBankRangeTable;
  [out] SIZE_T            CommitLimit;
        SIZE_T            SystemMemoryEndAddress;
        SIZE_T            Reserved;
} DXGK_SEGMENTDESCRIPTOR3;

成員

[out] Flags

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

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

[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

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

SystemMemoryEndAddress

對於部分由系統記憶體組成的區段,所有從此地址之後開始的配置都會在轉換為休眠狀態時清除。 完全存在於系統記憶體中,其中區段位址小於或等於 SystemMemoryEndAddress 的配置不會在此轉換中收回。

如果區段在轉換為休眠狀態時,顯示迷你埠驅動程序應該將此成員設定為非 NULL 值,在此情況下,應該設定DXGK_SEGMENTFLAGS結構中的 PartiallyPreservedDuringHibernate 成員。

驅動程式保留的記憶體會從區段位址 0 到 SystemMemoryEndAddress 執行,包含。 BIOS 保留的記憶體會從 (SystemMemoryEndAddress+1) 到區段結尾執行。

Reserved

這個成員是保留的,而且應該設定為零。

備註

WDDM 1.2 或更新版本的核心模式顯示迷你埠驅動程式會使用此結構,以傳回記憶體區段的相關信息,以響應圖形子系統指定DXGKARG_QUERYADAPTERINFO 結構之 Type 成員中的DXGKQAITYPE_QUERYSEGMENT3值。

這個結構是由 DXGK_QUERYSEGMENTOUT3 結構的 pSegmentDescriptor 成員所指向。

規格需求

需求
最低支援的用戶端 Windows 8
最低支援的伺服器 Windows Server 2012
標頭 d3dkmddi.h

另請參閱

D3DDDICB_LOCKFLAGS

DXGKARG_QUERYADAPTERINFO

DXGK_QUERYSEGMENTOUT3

DXGK_SEGMENTFLAGS

DxgkDdiQueryAdapterInfo