D3DDDI_ALLOCATIONINFO2構造体 (d3dukmdt.h)
D3DDDI_ALLOCATIONINFO2 構造体は、割り当てを記述します。
構文
typedef struct _D3DDDI_ALLOCATIONINFO2 {
D3DKMT_HANDLE hAllocation;
union {
HANDLE hSection;
const VOID *pSystemMem;
} D3DKMT_ALIGN64;
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
union {
struct {
UINT Primary : 1;
UINT Stereo : 1;
UINT OverridePriority : 1;
#if ...
UINT Reserved : 29;
#elif
UINT Reserved : 30;
#else
UINT Reserved : 31;
#endif
};
UINT Value;
} Flags;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
union {
UINT Priority;
D3DKMT_ALIGN64 ULONG_PTR Unused;
};
#if ...
D3DKMT_ALIGN64 ULONG_PTR Reserved[5];
#else
D3DKMT_ALIGN64 ULONG_PTR Reserved[6];
#endif
} D3DDDI_ALLOCATIONINFO2;
メンバーズ
hAllocation
[out]割り当てに対するカーネル モード ハンドルを表す D3DKMT_HANDLE ハンドル。 このハンドルは、Direct3D ランタイムの pfnAllocateCb 関数が D3DDDICB_ALLOCATE 構造体の hKMResource メンバーで返すカーネル モード リソース ハンドル (NULL 以外の場合) に関連付けられます。 ユーザー モード ディスプレイ ドライバーは、このカーネル モードの割り当てハンドルを使用して、コマンド バッファー内の割り当てを参照できます。
D3DKMT_ALIGN64
hSection と pSystemMemとの和集合。
D3DKMT_ALIGN64.hSection
[in]有効なセクション オブジェクトへのハンドル。 D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection が設定されている場合 hSection を使用します。
D3DKMT_ALIGN64.pSystemMem
[in]事前に割り当てられたシステム メモリへのポインター。
pPrivateDriverData
[入力/出力,オプト]ディスプレイ ミニポート ドライバーが割り当てを作成するために必要になる可能性がある、オプションのプライベート データを含むバッファーへのポインター。 ディスプレイ ミニポート ドライバーは、バッファー内のデータを返すこともできます。 バッファーの内容がディスプレイ ミニポート ドライバーに渡される場合、コンテンツは、ディスプレイ ミニポート ドライバーが処理できる形式である必要があります。
PrivateDriverDataSize
[in]プライベート データのサイズ (バイト単位)。
VidPnSourceId
[in]割り当てがプライマリ サーフェスの場合、ビデオ 存在ネットワーク (VidPN) トポロジのパス内のビデオ存在ソースの 0 から始まる VidPN 識別番号。 ドライバーは、他の種類の割り当てではなく、プライマリ割り当ての種類に対してのみ VidPnSourceId
DirectX グラフィックス カーネル サブシステムが共有プライマリ サーフェスの割り当ての作成を開始すると、ディスプレイ ミニポート ドライバーは、DXGK_ALLOCATIONINFO 構造体の pPrivateDriverData メンバーが指す D3DKMDDI_SHAREDPRIMARYSURFACEDATA 構造体の VidPnSourceId メンバーからの識別番号を決定できます。
Flags
[in]割り当ての種類を識別する構造体または 32 ビット値を含む共用体。
Flags.Primary
[in]割り当てがデスクトップの一部であるかどうかを指定する UINT。 このような割り当ては、CPU から暗黙的にアクセスできます。 プライマリ割り当ては、作成時に固定するか、作成時に固定することはできません。
このメンバーの設定は、32 ビット Value メンバー (0x00000001) の最初のビットを設定することと同じです。
Flags.Stereo
[in]Windows 8 (WDDM 1.2) 以降でサポートされています。 割り当てがステレオ プライマリ割り当てであるかどうかを指定する UINT。 Stereo メンバーは、プライマリ メンバーが設定されている場合にのみ設定できます。
このメンバーの設定は、32 ビット Value メンバー (0x00000002) の 2 番目のビットを設定することと同じです。
Flags.OverridePriority
[in]Windows 10 バージョン 1703 (WDDM 2.2) 以降でサポートされています。 ユーザー モード グラフィックス ドライバーによって確立された優先順位をオーバーライドします。
Flags.Reserved
[in]このメンバーは予約されており、0 に設定する必要があります。
Flags.Value
[in]割り当ての種類を識別する 32 ビット値。
GpuVirtualAddress
[out]作成された割り当ての GPU 仮想アドレス。
Priority
[in]割り当ての優先順位。
Unused
未使用。
Reserved[5]
Reserved[6]
備考
ユーザー モードのディスプレイ ドライバーが、D3DDDI_ALLOCATIONINFOの Flags メンバーで Primary ビット フィールド フラグを設定する場合、ディスプレイ ミニポート ドライバーの DxgkDdiCreateAllocation 関数の呼び出しで割り当てのために、DXGKARG_CREATEALLOCATIONpAllocationInfo メンバーの DXGK_ALLOCATIONINFO 構造体に特定の制限が適用されます。 これらの制限には、次のようなものがあります。
割り当ては設定に従って割り当てられます。それ以外の場合、割り当ては既定でサポートされている書き込みセグメント セットに設定され、書き込みセグメント セット内のすべての指定されたセグメントに CPU アクセス可能である必要があります。
ディスプレイ ミニポート ドライバーは、
のメンバーDXGK_ALLOCATIONINFO フラグに次のビット フィールド フラグを設定できません。 PermanentSysMem
キャッシュ
保護
ExistingSysMem
ExistingKernelSysMem
D3DDDI_ID_NOTAPPLICABLE定数は、D3dukmdt.hで定義されます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 |
ヘッダー | d3dukmdt.h |
関連項目
CreateResource の
D3DKMDDI_SHAREDPRIMARYSURFACEDATA
DxgkDdiCreateAllocation を
pfnAllocateCb を