D3DKMT_CREATEALLOCATION構造体 (d3dkmthk.h)

D3DKMT_CREATEALLOCATION 構造体は、割り当てを作成する のパラメーターを記述します。

構文

typedef struct _D3DKMT_CREATEALLOCATION {
  [in]     D3DKMT_HANDLE                hDevice;
  [in/out] D3DKMT_HANDLE                hResource;
  [out]    D3DKMT_HANDLE                hGlobalShare;
  [in]     const VOID                   *pPrivateRuntimeData;
  [in]     UINT                         PrivateRuntimeDataSize;
  union {
    [in]     D3DKMT_CREATESTANDARDALLOCATION *pStandardAllocation;
    [in]     const VOID                      *pPrivateDriverData;
  };
  [in/out] UINT                         PrivateDriverDataSize;
  [in]     UINT                         NumAllocations;
  union {
    [in]     D3DDDI_ALLOCATIONINFO  *pAllocationInfo;
    [in]     D3DDDI_ALLOCATIONINFO2 *pAllocationInfo2;
  };
  [in]     D3DKMT_CREATEALLOCATIONFLAGS Flags;
  [in]     HANDLE                       hPrivateRuntimeResourceHandle;
} D3DKMT_CREATEALLOCATION;

メンバーズ

[in] hDevice

リソースまたは割り当てが関連付けられているデバイスへのハンドル。

[in/out] hResource

割り当てに関連付けられているリソースへのカーネル モード ハンドルを表すD3DKMT_HANDLEデータ型。 既存のリソースに割り当てが追加されない限り、hResource の値は常に 0 にする必要があります。その場合、hResource リソース ハンドルが含まれます。

Flags メンバーで CreateResource ビット フィールド フラグが設定されると、OpenGL ランタイムによって一意のハンドルが生成され、ドライバーに渡されます。 D3DKMTCreateAllocation 関数からの出力では、hResource 、後続の OpenGL ランタイム呼び出しでリソースを識別するためにドライバーが使用するハンドルを指定します。 返されるリソース ハンドルはデバイス固有であり、作成されたデバイスで使用された場合にのみ有効です。

[out] hGlobalShare

ユーザー モード クライアント ドライバーは、グローバル ハンドルを使用してリソースを共有しないでください。 ドライバーは、Flags で NtSecuritySharing 設定し、D3DKMTShareObjects を呼び出して NT ハンドルを取得する必要があります。 グローバル ハンドルの使用は安全ではありません。 どのプロセスでも、グローバル ハンドルを推測し、共有オブジェクトを開くことができます。 グローバル ハンドルは、古い D3D ランタイムとの互換性上の理由でのみサポートされます。 (NtSecuritySharing 設定されていない場合、グローバル ハンドルは hGlobalShare返されます。UMD がグローバル ハンドルを使用してリソースを共有することを妨げるものは何もありませんが、ドライバーでは共有しないでください)。

[in] pPrivateRuntimeData

デバッグ目的でリソースにアタッチできるオプションのプライベート データへのポインター。 このデータはリソースごとであり、割り当てごとではありません。

[in] PrivateRuntimeDataSize

pPrivateRuntimeData が指 プライベート データのサイズ (バイト単位)。

[in] pStandardAllocation

作成する標準割り当てを記述する D3DKMT_CREATESTANDARDALLOCATION 構造体へのポインター。

[in] pPrivateDriverData

ディスプレイ ミニポート ドライバーがリソースまたは割り当てを作成するために必要になる可能性がある、オプションのプライベート データを含むバッファーへのポインター。 通常、バッファーの内容は ICD から取得され、ディスプレイ ミニポート ドライバーが処理できる形式である必要があります。

[in/out] PrivateDriverDataSize

pPrivateDriverData が指 プライベート データのサイズ (バイト単位)。

[in] NumAllocations

pAllocationInfo が指定 配列内の要素の数。これは、作成する割り当ての数を表します。 最初に割り当てなしでリソースを作成することは有効であることに注意してください。そのため、NumAllocations は 0 に設定できます。

[in] pAllocationInfo

作成する各割り当ての特定のプロパティを記述する D3DDDI_ALLOCATIONINFO 構造体の配列。

[in] pAllocationInfo2

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

このメンバーは、Windows 7 以降で使用できます。

[in] Flags

ビット フィールド フラグで割り当てを作成するための属性を識別する D3DKMT_CREATEALLOCATIONFLAGS 構造体。

FlagsCreateShared ビット フィールド フラグを設定する場合は、CreateResource ビット フィールド フラグも設定する必要があります。

[in] hPrivateRuntimeResourceHandle

イベント トレースで使用できる不透明なハンドル。 このハンドルを使用すると、Windows イベント トレーシング (ETW) イベント ログを分析するときに、カーネル モードの割り当てをユーザー モードのサーフェス ポインターに関連付けることができます。

必要条件

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

関連項目

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS