D3DDDI_ALLOCATIONINFO 構造体 (d3dukmdt.h)
D3DDDI_ALLOCATIONINFO構造体は、WDDM v1 の割り当てを記述します。 ユーザー モードのグラフィックス クライアントでは、代わりに D3DDDI_ALLOCATIONINFO2 を使用する必要があります。
構文
typedef struct _D3DDDI_ALLOCATIONINFO {
D3DKMT_HANDLE hAllocation;
void D3DKMT_PTR(
const VOID *unnamedParam1,
pSystemMem unnamedParam2
);
void D3DKMT_PTR(
VOID *unnamedParam1,
pPrivateDriverData unnamedParam2
);
UINT PrivateDriverDataSize;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
union {
struct {
UINT Primary : 1;
UINT Stereo : 1;
#if ...
UINT Reserved : 30;
#else
UINT Reserved : 31;
#endif
};
UINT Value;
} Flags;
} D3DDDI_ALLOCATIONINFO;
メンバー
hAllocation
[out]割り当てに対するカーネル モード ハンドルを表す D3DKMT_HANDLE 。 このハンドルは、Direct3D ランタイムの pfnAllocateCb 関数が D3DDDICB_ALLOCATE 構造体の hKMResource メンバーで返すカーネル モード リソース ハンドル (NULL 以外の場合) に関連付けられます。 ユーザー モード ディスプレイ ドライバーは、このカーネル モードの割り当てハンドルを使用して、コマンド バッファー内の割り当てを参照できます。
void D3DKMT_PTR( const VOID *unnamedParam1, pSystemMem unnamedParam2)
void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)
PrivateDriverDataSize
[入力]プライベート データのサイズ (バイト単位)。
VidPnSourceId
[入力]割り当てがプライマリ サーフェス用の場合、ビデオ 存在ネットワーク (VidPN) トポロジのパス内のビデオ 存在ソースの 0 から始まる VidPN 識別番号。 ドライバーは、他の種類の割り当てではなく、プライマリ割り当ての種類にのみ VidPnSourceId を設定する必要があります。 ドライバーが pfnAllocateCb 関数の呼び出しで他の割り当て型に VidPnSourceId を設定した場合、pfnAllocateCb はD3DDDI_ID_NOTAPPLICABLEを返します。
DirectX グラフィックス カーネル サブシステムが共有プライマリ サーフェスの割り当ての作成を開始すると、ディスプレイ ミニポート ドライバーは、DXGK_ALLOCATIONINFO構造体の pPrivateDriverData メンバーが指すD3DKMDDI_SHAREDPRIMARYSURFACEDATA構造体の VidPnSourceId メンバーから識別番号を決定できます。
Flags
[入力]構造体または割り当ての種類を識別する 32 ビット値を含む共用体。
Flags.Primary
[入力]割り当てがデスクトップの一部であるかどうかを指定する UINT。 このような割り当ては、CPU から暗黙的にアクセスできます。 プライマリ割り当ては、作成時に固定するか、作成時にピン留めすることはできません。
このメンバーの設定は、32 ビット 値 メンバー (0x00000001) の最初のビットを設定することと同じです。
Flags.Stereo
[入力]Windows 8 以降でサポートされます。 割り当てがステレオ プライマリ割り当てであるかどうかを指定する UINT。 Stereo メンバーは、プライマリ メンバーが設定されている場合にのみ設定できます。
このメンバーの設定は、32 ビット Value メンバー (0x00000002) の 2 番目のビットを設定することと同じです。
Flags.Reserved
[入力]このメンバーは予約済みであり、0 に設定する必要があります。
Flags.Value
[入力]割り当ての種類を識別する 32 ビット値。
注釈
ユーザー モードディスプレイ ドライバーが、D3DDDI_ALLOCATIONINFO の Flags メンバーでプライマリ ビット フィールド フラグを設定すると、ディスプレイ ミニポート ドライバーの DxgkDdiCreateAllocation 関数の呼び出しで割り当てに対して、DXGKARG_CREATEALLOCATION構造体の pAllocationInfo メンバーのDXGK_ALLOCATIONINFO構造体に特定の制限が適用されます。 これらの制限は以下のとおりです。
割り当ては、優先順位に従って割り当てられます。それ以外の場合、割り当ては既定でサポートされている書き込みセグメント セットに設定され、書き込みセグメント セット内のすべての指定されたセグメントに CPU アクセス可能である必要があります。
ディスプレイ ミニポート ドライバーは、DXGK_ALLOCATIONINFOの Flags メンバーで次のビット フィールド フラグを設定できません。
PermanentSysMem
キャッシュ済み
Protected
ExistingSysMem
ExistingKernelSysMem
D3DDDI_ID_NOTAPPLICABLE定数は D3dukmdt.h で定義されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
Header | d3dukmdt.h (D3dumddi.h、D3dkmddi.h を含む) |