共用方式為


DXGK_ALLOCATIONINFO結構(d3dkmddi.h)

DXGK_ALLOCATIONINFO 結構描述建立配置的參數。

語法

typedef struct _DXGK_ALLOCATIONINFO {
  VOID                       *pPrivateDriverData;
  UINT                       PrivateDriverDataSize;
  union {
    UINT Alignment;
    struct {
      UINT16 MinimumPageSize;
      UINT16 RecommendedPageSize;
    };
  };
  SIZE_T                     Size;
  SIZE_T                     PitchAlignedSize;
  DXGK_SEGMENTBANKPREFERENCE HintedBank;
  DXGK_SEGMENTPREFERENCE     PreferredSegment;
  union {
    UINT SupportedReadSegmentSet;
    UINT MmuSet;
  };
  UINT                       SupportedWriteSegmentSet;
  UINT                       EvictionSegmentSet;
  union {
    UINT MaximumRenamingListLength;
    UINT PhysicalAdapterIndex;
  };
  HANDLE                     hAllocation;
  union {
    DXGK_ALLOCATIONINFOFLAGS         Flags;
    DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 FlagsWddm2;
  };
  DXGK_ALLOCATIONUSAGEHINT   *pAllocationUsageHint;
  UINT                       AllocationPriority;
  DXGK_ALLOCATIONINFOFLAGS2  Flags2;
} DXGK_ALLOCATIONINFO;

成員

pPrivateDriverData

[in]私用數據區塊的指標。 此數據適用於每個配置,且與 DXGKARG_CREATEALLOCATION 結構中的 pPrivateDriverData 成員 不同。 使用者模式顯示驅動程式 (UMD) 可能會將此資料傳遞至內核模式顯示迷你埠驅動程式 (KMD)。 不過,如果 Dxgkrnl 傳遞此數據來描述共用的主要或其他可鎖定表面,則數據會傳遞為 pAllocationInfo 中陣列的第一 個專案,DXGKARG_CREATEALLOCATION的成員

PrivateDriverDataSize

[in]pPrivateDriverData 中私用數據區塊的大小,以位元組為單位。

Alignment

[out]配置所需的對齊方式,以位元組為單位。

MinimumPageSize

RecommendedPageSize

Size

[out]配置所需的大小,以位元組為單位。 大小值會擴充為原生主機頁面大小的倍數(例如 x86 架構上的 4 KB)。 KMD 會指定視訊記憶體管理員的配置大小(VidMm)。

PitchAlignedSize

[out]配置的大小,以位元組為單位,在位對齊線段時,由區段的 PitchAlignment 位欄位字段旗標所指定,Flags 區段 DXGK_SEGMENTDESCRIPTOR 結構的成員。 如果在音調對齊的區段中不支援配置(GPU 通常不支援這種類型的區段),驅動程式應將 PitchAlignedSize 中的值設定為零。 如果驅動程式在 PitchAlignedSize中指定非零值,則值必須大於或等於 Size 成員中的值。

HintedBank

[out]DXGK_SEGMENTBANKPREFERENCE 結構,指定 KMD 的銀行訂購喜好設定,VidMm 用來分頁配置。 如果指定此成員,VidMm 會使用最慣用區段的銀行資訊,這是由 PreferredSegment 成員所指定之 DXGK_SEGMENTPREFERENCE 結構的 SegmentId0 成員所指定。

PreferredSegment

[out]DXGK_SEGMENTPREFERENCE 結構,指出 VidMm 用於配置頁面的 KMD 要求慣用區段標識碼。

SupportedReadSegmentSet

[out]KMD 可以在讀取作業 PreferredSegment 成員中設定的區段標識符。 這些標識碼所指出的區段是 KMD 要求 VidMm 用來分頁配置讀取作業,而不論效能為何。 設定位 0 表示支援第一個區段,設定位 1 表示支援第二個區段等等。

KMD 只能針對讀取作業支援的區段設定喜好設定。 VidMm 判斷提示驅動程式是否嘗試在 PreferredSegment 成員中設定不支援區段的喜好設定。

MmuSet

SupportedWriteSegmentSet

[out]KMD 可以在寫入作業 PreferredSegment 成員中設定的區段標識符。 這些標識碼所指出的區段是 KMD 要求 VidMm 用來分頁寫入作業的配置,不論效能為何。 設定位 0 表示支援第一個區段,設定位 1 表示支援第二個區段等等。

KMD 只能針對寫入作業支援的區段設定喜好設定。 VidMm 判斷提示驅動程式是否嘗試在 PreferredSegment 成員中設定不支援區段的喜好設定。

EvictionSegmentSet

[out]可用於收回之區段的標識碼。 設定位 0 表示第一個區段可用於收回,設定位 1 表示第二個區段可用於收回等。

只有光圈區段可由這個成員指定。 如果驅動程式指定要用於收回的有效區段,VidMm 嘗試在這些光圈區段中配置資源,以加速收回程式。 如果驅動程式指定 0,VidMm 呼叫驅動程式,將配置的內容直接傳輸到分頁鎖定的系統記憶體,而不需透過光圈區段對應基礎頁面。

MaximumRenamingListLength

[out]配置重新命名清單的最大長度。 如需重新命名清單的詳細資訊,請參閱 要求重新命名設定

此成員的支援始於 Windows 10 和 WDDM v2。

PhysicalAdapterIndex

[out]實體配接器的索引。

此成員的支援始於 Windows 10 和 WDDM v2。

hAllocation

[out]配置句柄。 KMD 必須將這個成員設定為值,這個值可用來參考其配置的私人追蹤結構。

Flags

[out]DXGK_ALLOCATIONINFOFLAGS 結構,識別位字段旗標中配置的屬性。 這些屬性表示要建立的配置類型。 KMD 會針對 VidMm指定這些旗標。 以WDDM 2.0 之前的 WDDM 版本為目標的驅動程序應該使用 旗標;以任何 WDDM 版本為目標的驅動程式 >= WDDM 2.0 應該使用 FlagsWddm2

FlagsWddm2

[out]DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 結構,識別位字段旗標中配置的屬性。 這些屬性表示要建立的配置類型。 KMD 會針對 VidMm指定這些旗標。 以任何 WDDM 版本為目標的驅動程式 >= WDDM 2.0 應該使用 FlagsWddm2;以 WDDM 2.0 之前的 WDDM 版本為目標的驅動程式應該使用 旗標

pAllocationUsageHint

[out]記憶體管理員用來判斷如何使用配置之 DXGK_ALLOCATIONUSAGEHINT 結構的指標。

AllocationPriority

[out]指定配置起始優先權層級的 UINT 值。

驅動程式會為每個配置決定適當的優先順序層級。 如需優先順序層級的詳細資訊,請參閱 pfnSetPriorityCb 函式的一節。 如果設定優先順序層級不是驅動程式的問題,驅動程式應該將所有優先順序設定為 D3DDDI_ALLOCATIONPRIORITY_NORMAL。 請注意,0 是無效的初始配置優先順序。

Flags2

[out]DXGK_ALLOCATIONINFOFLAGS2 結構,其中包含配置的其他屬性。 從 Windows 11 開始支援 (WDDM 3.0)。

言論

使用 WDDM v2 時,DXGK_ALLOCATIONINFO 結構已變更,以便不再區分讀取和寫入區段集。 在介面建立期間,VidMm 會忽略 SupportedReadSegmentSet 值,並且只使用 supportedWriteSegmentSet提供的區段集。 驅動程式應確保此值正確表示配置可用於其用途的區段集。

忽略支援的讀取區段集並不表示不再支援它,但只是應該不再在這些集合之間有所差異,而且允許 VidMm 為單一區段集的任何配置選擇適當的區段。

要求

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

另請參閱

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFOFLAGS

DXGK_ALLOCATIONLIST

DXGK_ALLOCATIONUSAGEHINT

DXGK_SEGMENTBANKPREFERENCE

DXGK_SEGMENTDESCRIPTOR

DXGK_SEGMENTPREFERENCE

DxgkDdiCreateAllocation

DxgkDdiRender

pfnAllocateCb