D3D10DDIARG_CREATEDEVICE 構造体 (d3d10umddi.h)
D3D10DDIARG_CREATEDEVICE構造では、作成するディスプレイ デバイスについて説明します。
構文
typedef struct D3D10DDIARG_CREATEDEVICE {
D3D10DDI_HRTDEVICE hRTDevice;
UINT Interface;
UINT Version;
const D3DDDI_DEVICECALLBACKS *pKTCallbacks;
union {
D3D10DDI_DEVICEFUNCS *pDeviceFuncs;
D3D10_1DDI_DEVICEFUNCS *p10_1DeviceFuncs;
D3D11DDI_DEVICEFUNCS *p11DeviceFuncs;
D3D11_1DDI_DEVICEFUNCS *p11_1DeviceFuncs;
D3DWDDM1_3DDI_DEVICEFUNCS *pWDDM1_3DeviceFuncs;
D3DWDDM2_0DDI_DEVICEFUNCS *pWDDM2_0DeviceFuncs;
D3DWDDM2_1DDI_DEVICEFUNCS *pWDDM2_1DeviceFuncs;
D3DWDDM2_2DDI_DEVICEFUNCS *pWDDM2_2DeviceFuncs;
D3DWDDM2_6DDI_DEVICEFUNCS *pWDDM2_6DeviceFuncs;
};
D3D10DDI_HDEVICE hDrvDevice;
DXGI_DDI_BASE_ARGS DXGIBaseDDI;
D3D10DDI_HRTCORELAYER hRTCoreLayer;
union {
const D3D10DDI_CORELAYER_DEVICECALLBACKS *pUMCallbacks;
const D3D11DDI_CORELAYER_DEVICECALLBACKS *p11UMCallbacks;
const D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_0UMCallbacks;
const D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_2UMCallbacks;
const D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_6UMCallbacks;
};
UINT Flags;
PFND3D10DDI_RETRIEVESUBOBJECT *ppfnRetrieveSubObject;
} D3D10DDIARG_CREATEDEVICE;
メンバー
hRTDevice
[入力]ドライバーが Direct3D ランタイムにコールバックするときに使用するハンドルを指定するディスプレイ デバイス (グラフィックス コンテキスト) へのハンドル (つまり、ドライバーが pKTCallbacks メンバーが指定する関数を呼び出すとき)。
Interface
[入力]Direct3D インターフェイスのバージョン。 上位 16 ビットはメジャー リリース番号 (10、11 など) を格納します。下位 16 ビットにはマイナー リリース番号 (0、1、2 など) が格納されます。 マイナー リリース番号は、インターフェイスへの変更がリリースされると増やされます。
Version
[入力]ドライバーが Direct3D ランタイムがビルドされた日時を識別するために使用できる数値。 上位 16 ビットはビルド番号を表します。下位 16 ビットはリビジョン番号を表します。
ドライバーは、上位 16 ビットを監視するためにのみ必要です。 ドライバーは、渡されるランタイム ビルド バージョンがドライバーの現在のビルド バージョン以上であることを確認する必要があります。 渡されたビルド バージョンに互換性がない場合、ドライバーは CreateDevice(D3D10) 関数からエラーを返す必要があります。
pKTCallbacks
[入力]ドライバーがカーネル サービスへのアクセスに使用できる Direct3D ランタイム コールバック関数のテーブルを含む D3DDDI_DEVICECALLBACKS構造体への ポインター。
pDeviceFuncs
[入力/出力]ユーザー モード ディスプレイ ドライバーが関数のテーブルで埋める D3D10DDI_DEVICEFUNCS 構造体へのポインター。 Direct3D ランタイムは、これらの関数を使用して、ユーザー モードのディスプレイ ドライバーと通信します。
Interface メンバーの値がD3D10_0_DDI_INTERFACE_VERSIONの場合、ドライバーは指定された D3D10DDI_DEVICEFUNCS 構造体で Direct3D バージョン 10.0 関数を入力する必要があります。
p10_1DeviceFuncs
[入力/出力]ユーザー モードのディスプレイ ドライバーが関数のテーブルで埋める D3D10_1DDI_DEVICEFUNCS 構造体へのポインター。 Direct3D ランタイムのバージョン 10.1 では、これらの関数を使用してユーザー モード ディスプレイ ドライバーと通信します。
Interface メンバーの値がD3D10_1_DDI_INTERFACE_VERSIONされている場合、ドライバーは、指定されたD3D10_1DDI_DEVICEFUNCS構造体の Direct3D バージョン 10.1 関数を満たす必要があります。
SP1 および Windows Server 2008 を使用した Windows Vista 以降でサポートされます。
p11DeviceFuncs
[入力/出力]ユーザー モード ディスプレイ ドライバーが関数のテーブルで埋める D3D11DDI_DEVICEFUNCS 構造体へのポインター。 Direct3D ランタイムのバージョン 11 では、これらの関数を使用してユーザー モード ディスプレイ ドライバーと通信します。
Interface メンバーの値がD3D11_0_DDI_INTERFACE_VERSION場合、ドライバーは、指定された D3D11DDI_DEVICEFUNCS 構造体の Direct3D バージョン 11.0 関数を満たす必要があります。
Windows 7 以降でサポートされています。
p11_1DeviceFuncs
[入力/出力]ユーザー モードのディスプレイ ドライバーが関数のテーブルで埋める D3D11_1DDI_DEVICEFUNCS 構造体へのポインター。 バージョン 11.1 以降では、Direct3D ランタイムはこれらの関数を使用してユーザー モードのディスプレイ ドライバーと通信します。
Interface メンバーの値がD3D11_1_DDI_INTERFACE_VERSION場合、ドライバーは、指定された D3D11_1DDI_DEVICEFUNCS 構造体内の Direct3D バージョン 11.1 関数を入力する必要があります。
Windows 8 以降でサポートされています。
pWDDM1_3DeviceFuncs
[入力/出力]ユーザー モード ディスプレイ ドライバーがその関数のテーブルで埋める D3DWDDM1_3DDI_DEVICEFUNCS 構造体へのポインター。 Direct3D ランタイムのバージョン 11.2 では、これらの関数を使用してユーザー モード ディスプレイ ドライバーと通信します。
Interface メンバーの値がD3DWDDM1_3_DDI_INTERFACE_VERSIONの場合、ドライバーは、指定されたD3DWDDM1_3DDI_DEVICEFUNCS構造体の Direct3D バージョン 11.2 関数を満たす必要があります。
Windows 8.1 以降でサポートされています。
pWDDM2_0DeviceFuncs
[入力/出力]ユーザー モード ディスプレイ ドライバーがその関数のテーブルで埋める D3DWDDM2_0DDI_DEVICEFUNCS 構造体へのポインター。 Interface メンバーの値がD3DWDDM2_0_DDI_INTERFACE_VERSION場合、ドライバーは指定された構造体の Direct3D 関数を入力する必要があります。
pWDDM2_1DeviceFuncs
[入力/出力]ユーザー モード ディスプレイ ドライバーが関数のテーブルで埋める D3DWDDM2_1DDI_DEVICEFUNCS 構造体へのポインター。 Interface メンバーの値がD3DWDDM2_0_DDI_INTERFACE_VERSION場合、ドライバーは指定された構造体の Direct3D 関数を入力する必要があります。
pWDDM2_2DeviceFuncs
[入力/出力]ユーザー モードディスプレイドライバーが関数のテーブルで埋める D3DWDDM2_2DDI_DEVICEFUNCS構造体への ポインター。 Interface メンバーの値がD3DWDDM2_0_DDI_INTERFACE_VERSION場合、ドライバーは指定された構造体の Direct3D 関数を入力する必要があります。
pWDDM2_6DeviceFuncs
[入力/出力]ユーザー モード ディスプレイ ドライバーが関数のテーブルで埋める D3DWDDM2_6DDI_DEVICEFUNCS 構造体へのポインター。 Interface メンバーの値がD3DWDDM2_0_DDI_INTERFACE_VERSION場合、ドライバーは指定された構造体の Direct3D 関数を入力する必要があります。
Windows 10 バージョン 1901 以降でサポートされています。
hDrvDevice
[入力/出力]Direct3D ランタイムが後続のドライバー呼び出しでディスプレイ デバイスを識別するために使用するディスプレイ デバイス (グラフィックス コンテキスト) へのハンドル。
DXGIBaseDDI
[入力/出力]DXGI へのアクセスを提供する DXGI_DDI_BASE_ARGS 構造体。 DXGI DDI は、レンダリングされたフレームの出力への表示、ガンマの制御、全画面表示の切り替えの管理などの低レベルのタスクを処理します。
hRTCoreLayer
[入力]ドライバーが Direct3D ランタイムにコールバックして Direct3D 10 のコア機能にアクセスするときに使用するハンドル (つまり、ドライバーが pUMCallbacks メンバーが指定する関数を呼び出すとき)。
pUMCallbacks
[入力]ドライバーが 主要なユーザー モード ランタイム機能にアクセスするために使用できる Direct3D 10 ランタイム コールバック関数のテーブルを含むD3D10DDI_CORELAYER_DEVICECALLBACKS構造体へのポインター。
p11UMCallbacks
[入力]Direct3D 10 および Direct3D 11 ランタイム コールバック関数のテーブルを含む D3D11DDI_CORELAYER_DEVICECALLBACKS 構造体へのポインター。ドライバーは、ユーザー モードランタイムのコア機能にアクセスするために使用できます。
Windows 7 以降でサポートされています。
pWDDM2_0UMCallbacks
[入力]Direct3D 10、Direct3D 11、WDDM 2.0 ランタイム コールバック関数のテーブルを含む D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS構造体への ポインター。ドライバーは、ユーザー モードランタイムのコア機能にアクセスするために使用できます。
pWDDM2_2UMCallbacks
[入力]Direct3D 10、Direct3D 11、WDDM 2.0、WDDM 2.2 ランタイム コールバック関数のテーブルを含む D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS構造体への ポインター。ドライバーは、コア ユーザー モードランタイム機能にアクセスするために使用できます。
pWDDM2_6UMCallbacks
[入力]Direct3D 10、Direct3D 11、WDDM 2.0、WDDM 2.2、WDDM 2.6 ランタイム コールバック関数のテーブルを含む D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS構造体への ポインター。ドライバーは、コア ユーザー モードランタイム機能にアクセスするために使用できます。
Flags
[入力]ディスプレイ デバイスの作成方法を識別するフラグ値の有効なビットごとの OR。 Direct3D ランタイムでは、次のフラグがサポートされています。
フラグ | 説明 |
---|---|
D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION (0x1) | このフラグが設定されている場合、ユーザー モードのディスプレイ ドライバーは、Direct3D ランタイムから関数の呼び出しを処理するときに、複数のスレッドを同時に実行しないでください。 ドライバーは通常、D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION フラグが設定されていない限り、複数のスレッドを起動して実行して操作をより高速 に 処理できます。 |
D3D11DDI_CREATEDEVICE_FLAG_SINGLETHREADED (0x10) | アプリケーションがシングル スレッドであることをユーザー モード ディスプレイ ドライバーに通知します。 Direct3D 11 ランタイムでは、ドライバーでこの操作モードが許可されている場合、複数のアプリケーション スレッドがドライバーに入ることができます。 ただし、すべてのアプリケーションで複数のスレッドを実行できるわけではありません。 このフラグが設定されている場合、ドライバーは複数のスレッドが入力して同時に実行することを想定していません。 このフラグが設定されている場合、ドライバーは同期を回避できます。 Windows 7 以降でサポートされています。 |
Flags メンバーの0xE マスクに設定されているフラグ | ドライバーがディスプレイ デバイスに対してサポートする必要がある 3-D パイプラインのレベルを表します。 「解説」を参照してください。 Windows 7 以降でサポートされています。 |
ppfnRetrieveSubObject
[入力/出力]Direct3D ドライバー デバイス オブジェクトのサブパーツを取得する RetrieveSubObject(D3D11_1) 関数へのポインター。
Windows 8 以降でサポートされています。
注釈
ドライバーは、Interface メンバーと Version メンバーの値を調べて、pDeviceFuncs、p10_1DeviceFuncs、p11DeviceFuncs、p11_1DeviceFuncs、pWDDM1_3DeviceFuncs メンバーがドライバーのを指すD3D10DDI_DEVICEFUNCS、D3D10_1DDI_DEVICEFUNCS、D3D11DDI_DEVICEFUNCS、D3D11_1DDI_DEVICEFUNCS、またはD3DWDDM1_3DDI_DEVICEFUNCS構造体を満たすかどうかを判断します関数。 D3d10umddi.h の次の定数は、ドライバーが インターフェイス と バージョンで見つける可能性がある定数の例です。
#define D3D10_1_DDI_MINOR_VERSION 2
#define D3D10_1_DDI_INTERFACE_VERSION ((D3D10_DDI_MAJOR_VERSION << 16) | D3D10_1_DDI_MINOR_VERSION)
#define D3D10_1_DDI_BUILD_VERSION 1
#define D3D10_1_DDI_SUPPORTED ((((UINT64)D3D10_1_DDI_INTERFACE_VERSION) << 32) | (((UINT64)D3D10_1_DDI_BUILD_VERSION) << 16))
オペレーティング システム、Direct3D、および Windows ディスプレイ ドライバー モデル (WDDM) のさまざまなバージョンの定数の他の可能な組み合わせは、 D3d10umddi.h ヘッダーに記載されています。
Flags メンバーの0xE マスクに設定されているフラグの場合、ドライバーは次の定数とマクロを使用して、サポートする 3-D パイプライン レベルを表すD3D11DDI_3DPIPELINELEVEL列挙から値の 1 つを抽出します。 Flags メンバーの値は、D3D11DDI_3DPIPELINESUPPORT_CAPS構造体の Caps メンバーのように書式設定されます。
#define D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT (0x1)
#define D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_MASK (0x7 << D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT)
#define D3D11DDI_EXTRACT_3DPIPELINELEVEL_FROM_FLAGS( Flags ) \
((D3D11DDI_3DPIPELINELEVEL)(((Flags) & D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_MASK) >> \
D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT))
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
Header | d3d10umddi.h (D3d10umddi.h を含む) |
こちらもご覧ください
D3D10DDI_CORELAYER_DEVICECALLBACKS
D3D11DDI_3DPIPELINESUPPORT_CAPS