次の方法で共有


D3DDDI_ALLOCATIONINFO構造体 (d3dukmdt.h)

D3DDDI_ALLOCATIONINFO 構造体は、WDDM v1 の割り当てを記述します。 ユーザー モードのグラフィックス クライアントでは、代わりに D3DDDI_ALLOCATIONINFO2 を使用する必要があります。

構文

typedef struct _D3DDDI_ALLOCATIONINFO {
  D3DKMT_HANDLE                  hAllocation;
  const VOID                     *pSystemMem;
  VOID                           *pPrivateDriverData;
  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 以外の場合) に関連付けられます。 ユーザー モード ディスプレイ ドライバーは、このカーネル モードの割り当てハンドルを使用して、コマンド バッファー内の割り当てを参照できます。

pSystemMem

[in]Direct3D ランタイムが事前に割り当てられたシステム メモリへのポインター。 それ以外の場合、割り当てがビデオ メモリを使用する場合、このメンバーは NULL になります。

割り当てがシステム メモリ内にある場合、ユーザー モード ディスプレイ ドライバーは、pSystemMem するリソースの D3DDDI_SURFACEINFO 構造体の pSysMem メンバーのバッファーを割り当てる必要があります。 このバッファーは、Direct3D ランタイムがユーザー モード ディスプレイ ドライバーの CreateResource 関数を呼び出してリソースを作成するときに指定されます。

pPrivateDriverData

[入力/出力,オプト]ディスプレイ ミニポート ドライバーが割り当てを作成するために必要になる可能性がある、オプションのプライベート データを含むバッファーへのポインター。 ディスプレイ ミニポート ドライバーは、バッファー内のデータを返すこともできます。 バッファーの内容がディスプレイ ミニポート ドライバーに渡される場合、コンテンツは、ディスプレイ ミニポート ドライバーが処理できる形式である必要があります。

PrivateDriverDataSize

[in]プライベート データのサイズ (バイト単位)。

VidPnSourceId

[in]割り当てがプライマリ サーフェスの場合、ビデオ 存在ネットワーク (VidPN) トポロジのパス内のビデオ存在ソースの 0 から始まる VidPN 識別番号。 ドライバーは、他の種類の割り当てではなく、プライマリ割り当ての種類に対してのみ VidPnSourceId 設定する必要があります。 pfnAllocateCb 関数の呼び出しで他の割り当て型に対して、VidPnSourceId をドライバーが設定した場合、pfnAllocateCb はD3DDDI_ID_NOTAPPLICABLEを返します。

DirectX グラフィックス カーネル サブシステムが共有プライマリ サーフェスの割り当ての作成を開始すると、ディスプレイ ミニポート ドライバーは、DXGK_ALLOCATIONINFO 構造体の pPrivateDriverData メンバーが指す D3DKMDDI_SHAREDPRIMARYSURFACEDATA 構造体の VidPnSourceId メンバーからの識別番号を決定できます。

Flags

[in]割り当ての種類を識別する構造体または 32 ビット値を含む共用体。

Flags.Primary

[in]割り当てがデスクトップの一部であるかどうかを指定する UINT。 このような割り当ては、CPU から暗黙的にアクセスできます。 プライマリ割り当ては、作成時に固定するか、作成時に固定することはできません。

このメンバーの設定は、32 ビット Value メンバー (0x00000001) の最初のビットを設定することと同じです。

Flags.Stereo

[in]Windows 8 以降でサポートされています。 割り当てがステレオ プライマリ割り当てであるかどうかを指定する UINT。 Stereo メンバーは、プライマリ メンバーが設定されている場合にのみ設定できます。

このメンバーの設定は、32 ビット Value メンバー (0x00000002) の 2 番目のビットを設定することと同じです。

Flags.Reserved

[in]このメンバーは予約されており、0 に設定する必要があります。

Flags.Value

[in]割り当ての種類を識別する 32 ビット値。

備考

ユーザー モードのディスプレイ ドライバーが、D3DDDI_ALLOCATIONINFOの Flags メンバーで Primary ビット フィールド フラグを設定する場合、ディスプレイ ミニポート ドライバーの DxgkDdiCreateAllocation 関数の呼び出しで割り当てのために、DXGKARG_CREATEALLOCATIONpAllocationInfo メンバーの DXGK_ALLOCATIONINFO 構造体に特定の制限が適用されます。 これらの制限には、次のようなものがあります。

  • 割り当ては設定に従って割り当てられます。それ以外の場合、割り当ては既定でサポートされている書き込みセグメント セットに設定され、書き込みセグメント セット内のすべての指定されたセグメントに CPU アクセス可能である必要があります。

  • ディスプレイ ミニポート ドライバーは、DXGK_ALLOCATIONINFOのメンバー フラグに次のビット フィールド フラグを設定できません。

  • PermanentSysMem

  • キャッシュ

  • 保護

  • ExistingSysMem

  • ExistingKernelSysMem

D3DDDI_ID_NOTAPPLICABLE定数は、D3dukmdt.hで定義されます。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
ヘッダー d3dukmdt.h (D3dumddi.h、D3dkmddi.h を含む)

関連項目

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_ALLOCATIONINFO2

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocationする

pfnAllocateCbする