Win32 API 日本語リファレンス
ホームGraphics.Direct3D12 › ID3D12SDKConfiguration

ID3D12SDKConfiguration

COM
IIDe9eb5314-33aa-42b2-a718-d77f58b1f1c7継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

SDK の構成 (コンフィギュレーション) を行うメソッドを提供します。

解説(Remarks)

PIX のような API キャプチャを再生するツールや、HLK のようなテストハーネスは、再頒布可能パッケージ (redist) をサポートするために変更が必要です。これらのツールは、最新の redist を同梱して出荷することを選択できます。更新をまたいだ Direct3D の API 互換性により、API キャプチャツールは古いバージョンの Direct3D 12 SDK 上でキャプチャを行い、それを新しいバージョン上で再生できるはずです。ただし、一部のシナリオでは SDK バージョンの選択に、より高い柔軟性が求められます。

メソッド 1

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SetSDKVersion(DWORD SDKVersion, LPSTR SDKPath)

使用する SDK バージョンを構成します。

SDKVersionDWORDin設定する SDK バージョン。
SDKPathLPSTRin指定した SDKVersiond3d12core.dll への相対パスを示す、NULL 終端文字列。パスは呼び出し元プロセスの exe からの相対パスです。d3d12core.dll が見つからない場合、または指定した SDKVersion でない場合、Direct3D 12 のデバイス作成は失敗します。

戻り値

型: HRESULT

関数が成功した場合は S_OK を返します。それ以外の場合は、Direct3D 12 のリターンコードのいずれかを返します。

解説(Remarks)

このメソッドは Windows の開発者モードでのみ使用できます。

この API で SDK バージョンを設定するには、Direct3D 12 デバイスを作成するに呼び出す必要があります。Direct3D 12 デバイスの作成にこの API を呼び出すと、Direct3D 12 ランタイムはそのデバイスを削除します。

OS と共にインストールされている d3d12core.dll が、指定した SDK バージョンより新しい場合は、OS のバージョンが代わりに使用されます。

特定の D3D12Core.dll のバージョンは、エクスポートされたシンボル D3D12SDKVersion から取得できます。これは UINT 型の変数であり、Agility SDK を利用するためにアプリケーションからエクスポートされる変数と同様のものです。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_ID3D12SDKConfiguration "{E9EB5314-33AA-42B2-A718-D77F58B1F1C7}"
#usecom global ID3D12SDKConfiguration IID_ID3D12SDKConfiguration "{7CDA6ACA-A03E-49C8-9458-0334D20E07CE}"
#comfunc global ID3D12SDKConfiguration_SetSDKVersion  3 int,str
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。