ディスプレイアダプタを表すデバイスと、描画に使用するスワップチェーンを作成する。
D3D11CreateDeviceAndSwapChain pAdapter, DriverType, Software, Flags, pFeatureLevels, FeatureLevels, SDKVersion, pSwapChainDesc, ppSwapChain, ppDevice, pFeatureLevel, ppImmediateContext
pAdapter : [var] 型: IDXGIAdapter* デバイス作成時に使用するビデオアダプタへのポインタ。既定のアダプタを使う場合は NULL を渡す。既定のアダプタは IDXGIFactory1::EnumAdapters が最初に列挙するアダプタである。注意 DXGI 1.0 (IDXGIFactory) と DXGI 1.1 (IDXGIFactory1) を 1 つのアプリケーションで混在させてはならない。IDXGIFactory または IDXGIFactory1 のどちらか一方だけを使う。 DriverType : [int] 型: D3D_DRIVER_TYPE 作成するドライバ種別を表す D3D_DRIVER_TYPE。 Software : [intptr] 型: HMODULE ソフトウェアラスタライザを実装する DLL へのハンドル。DriverType が D3D_DRIVER_TYPE_SOFTWARE の場合、Software は NULL であってはならない。ハンドルは LoadLibrary、LoadLibraryEx、GetModuleHandle のいずれかで取得する。D3D_DRIVER_TYPE が D3D_DRIVER_TYPE_SOFTWARE の場合は非 NULL、それ以外は NULL とする。 Flags : [int] 型: UINT 有効にするランタイムレイヤー (D3D11_CREATE_DEVICE_FLAG を参照)。複数の値をビット単位 OR で組み合わせ可能。 pFeatureLevels : [var] 型: const D3D_FEATURE_LEVEL* 試行する機能レベルの順序を決める D3D_FEATURE_LEVEL 配列へのポインタ。pFeatureLevels に NULL を設定した場合、この関数は以下の既定の機能レベル配列を使用する。 FeatureLevels : [int] 型: UINT pFeatureLevels の要素数。 SDKVersion : [int] 型: UINT SDK バージョン。D3D11_SDK_VERSION を指定する。 pSwapChainDesc : [var] 型: const DXGI_SWAP_CHAIN_DESC* スワップチェーンの初期化パラメータを保持するスワップチェーン記述 (DXGI_SWAP_CHAIN_DESC を参照) へのポインタ。 ppSwapChain : [var] 型: IDXGISwapChain** 描画に使用されるスワップチェーンを表す IDXGISwapChain オブジェクトへのポインタのアドレスを返す。 ppDevice : [var] 型: ID3D11Device** 作成されたデバイスを表す ID3D11Device オブジェクトへのポインタのアドレスを返す。このパラメータが NULL の場合、ID3D11Device は返されない。 pFeatureLevel : [var] 型: D3D_FEATURE_LEVEL* デバイスがサポートする機能レベル配列の先頭要素を表す D3D_FEATURE_LEVEL へのポインタを返す。どの機能レベルがサポートされているか判定する必要がない場合は NULL を指定する。 ppImmediateContext : [var] 型: ID3D11DeviceContext** デバイスコンテキストを表す ID3D11DeviceContext オブジェクトへのポインタのアドレスを返す。このパラメータが NULL の場合、ID3D11DeviceContext は返されない。
(プラグイン / モジュール : d3d11.dll)
ディスプレイアダプタを表すデバイスと、描画に使用するスワップチェーンを作成する。 [戻り値] 型: HRESULT このメソッドは Direct3D 11 の戻りコードのいずれかを返すことがある。 Session 0 プロセス内で呼び出した場合は DXGI_ERROR_NOT_CURRENTLY_AVAILABLE を返す。 pAdapter に NULL 以外を設定しつつ DriverType を D3D_DRIVER_TYPE_HARDWARE にすると、E_INVALIDARG を返す。 Flags に D3D11_CREATE_DEVICE_DEBUG を指定したがコンピュータ上に不適切なバージョンのデバッグレイヤーしかインストールされていない場合、DXGI_ERROR_SDK_COMPONENT_MISSING を返す。正しいバージョンを入手するには最新の Windows SDK をインストールすること。 [備考] 注意 このメソッドを Session 0 プロセス内で呼び出すと DXGI_ERROR_NOT_CURRENTLY_AVAILABLE を返す。 このエントリポイントは Direct3D 11 ランタイムによりサポートされ、Windows 7、Windows Server 2008 R2、および Windows Vista の更新プログラム (KB971644) として提供されている。 Windows 8、Windows Server 2012、および Platform Update for Windows 7 がインストールされた Windows 7 / Windows Server 2008 R2 で利用可能な Direct3D 11.1 デバイス (ID3D11Device1) を作成するには、まずこの関数で ID3D11Device を作成し、その後 ID3D11Device オブジェクトの QueryInterface メソッドを呼び出して ID3D11Device1 インターフェースを取得する。 Windows 8.1 および Windows Server 2012 R2 で利用可能な Direct3D 11.2 デバイス (ID3D11Device2) を作成するには、まずこの関数で ID3D11Device を作成し、その後 ID3D11Device オブジェクトの QueryInterface メソッドを呼び出して ID3D11Device2 インターフェースを取得する。 入力パラメータの依存関係の詳細については D3D11CreateDevice の備考も参照すること。スワップチェーンを作成せずにデバイスだけを作成するには D3D11CreateDevice 関数を使用する。 pAdapter パラメータに NULL 以外の値を指定する場合、DriverType パラメータには D3D_DRIVER_TYPE_UNKNOWN 値を指定しなければならない。pAdapter に NULL 以外を設定しつつ DriverType を D3D_DRIVER_TYPE_HARDWARE にすると、D3D11CreateDeviceAndSwapChain は E_INVALIDARG の HRESULT を返す。 関数シグネチャ PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN は typedef として提供されているので、静的リンクせずに動的リンク技法 (GetProcAddress) を使うこともできる。 使用上の注意 注意 D3D11CreateDeviceAndSwapChain 関数は Windows ストアアプリでは利用できない。代わりに Windows ストアアプリでは D3D11CreateDevice 関数と IDXGIFactory2::CreateSwapChainForCoreWindow メソッドを用いる。 注意 この関数はスワップチェーン作成の最近の追加機能をサポートするように更新されていない。最新のスワップチェーン作成手段については IDXGIFactory2 のメソッド (CreateSwapChainForHwnd、CreateSwapChainForCoreWindow、CreateSwapChainForComposition を含む) を参照。 Windows Phone 8: この API はサポートされる。
| プラグイン / モジュール | d3d11.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の d3d11.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_d3d11_gen2.hs |