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
PrivateDriverDataSize
[in]pPrivateDriverData内のプライベート データ ブロック
Alignment
[out]割り当てに必要なアラインメント (バイト単位)。
MinimumPageSize
RecommendedPageSize
Size
[out]割り当てに必要なサイズ (バイト単位)。 サイズの値は、ネイティブ ホスト ページ サイズの倍数に拡張されます (たとえば、x86 アーキテクチャでは 4 KB)。 KMD は、ビデオ メモリ マネージャー (VidMm) への割り当てサイズを指定します。
PitchAlignedSize
[out]ピッチアラインセグメントに配置されたときの割り当てのサイズ (バイト単位) です。これは、セグメントの DXGK_SEGMENTDESCRIPTOR 構造体の Flags メンバーの PitchAlignment ビットフィールド フラグによって指定されます。 割り当てがピッチアライン セグメントでサポートされていない場合 (GPU はこの種類のセグメントを一般的にサポートしていません)、ドライバーは PitchAlignedSize の値を 0 に設定する必要があります。 PitchAlignedSizeでドライバーが 0 以外の値を指定する場合、値は Size メンバーの値以上である必要があります。
HintedBank
[out]割り当てのページインに VidMm 使用
PreferredSegment
[out]割り当てのページインに使用 VidMm KMD が要求する優先セグメント識別子を示す DXGK_SEGMENTPREFERENCE 構造体。
SupportedReadSegmentSet
[out]読み取り操作の PreferredSegment メンバーで KMD が設定できるセグメント識別子。 これらの識別子が示すセグメントは、パフォーマンスに関係なく、読み取り操作の割り当てに使用 VidMm KMD が要求するセグメントです。 ビット 0 の設定は、最初のセグメントがサポートされていることを示し、設定ビット 1 は 2 番目のセグメントがサポートされていることを示します。
KMD では、読み取り操作でサポートされているセグメントに対してのみ基本設定を設定できます。 VidMm は、ドライバーが PreferredSegment メンバーでサポートされていないセグメントの基本設定を設定しようとした場合にアサートします。
MmuSet
SupportedWriteSegmentSet
[out]書き込み操作の PreferredSegment メンバーで KMD が設定できるセグメント識別子。 これらの識別子が示すセグメントは、パフォーマンスに関係なく、VidMm が書き込み操作の割り当てに使用する KMD 要求のセグメントです。 ビット 0 の設定は、最初のセグメントがサポートされていることを示し、設定ビット 1 は 2 番目のセグメントがサポートされていることを示します。
KMD では、書き込み操作でサポートされているセグメントに対してのみ基本設定を設定できます。 VidMm は、ドライバーが PreferredSegment メンバーでサポートされていないセグメントの基本設定を設定しようとした場合にアサートします。
EvictionSegmentSet
[out]削除に使用できるセグメントの識別子。 ビット 0 の設定は、最初のセグメントを削除に使用できることを示し、ビット 1 を設定すると、2 番目のセグメントを削除に使用できることを示します。
このメンバーでは、絞りセグメントのみを指定できます。 ドライバーが削除に使用する有効なセグメントを指定した場合、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 を対象とするドライバーは、Flagsを使用する必要があります。WDDM バージョン >= WDDM 2.0 を対象とするドライバーは、FlagsWddm2を使用する必要があります。
FlagsWddm2
[out]ビット フィールド フラグでの割り当てのプロパティを識別する DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 構造体。 これらのプロパティは、作成する割り当ての種類を示します。 KMD は、VidMmに対してこれらのフラグを指定します。 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
サポートされている読み取りセグメント セットを無視しても、サポートされなくなったという意味ではなく、単にこれらのセット間に違いが生じないようにする必要があります。VidMm では、1 つのセグメント セットからの割り当てに適したセグメントを選択できます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista |
ヘッダー | d3dkmddi.h (D3dkmddi.h を含む) |
関連項目
DxgkDdiCreateAllocation を
DxgkDdiRender を
pfnAllocateCb を