Win32 API 日本語リファレンス
ホームAI.MachineLearning.DirectML › IDMLDevice

IDMLDevice

COM
IID6dbd6437-96fd-423f-a98c-ae5e7c2a573f継承元IDMLObject自前メソッド開始 vtbl7

メソッド 10

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

vtbl 7 HRESULT CheckFeatureSupport(DML_FEATURE feature, DWORD featureQueryDataSize, void* featureQueryData, DWORD featureSupportDataSize, void* featureSupportData)
featureDML_FEATUREinサポート状況を問い合わせる機能を示す DML_FEATURE 列挙値である。
featureQueryDataSizeDWORDinfeatureQueryData が指す入力クエリ構造体のバイトサイズである。
featureQueryDatavoid*inoptional機能ごとのクエリパラメータ構造体へのポインタである。不要なら NULL 可。
featureSupportDataSizeDWORDinfeatureSupportData が指す出力バッファのバイトサイズである。
featureSupportDatavoid*outサポート結果を受け取る出力構造体へのポインタである。
vtbl 8 HRESULT CreateOperator(DML_OPERATOR_DESC* desc, GUID* riid, void** ppv)
descDML_OPERATOR_DESC*in作成する演算子を記述する DML_OPERATOR_DESC 構造体へのポインタである。
riidGUID*in取得するインターフェイスの GUID(通常 IDMLOperator)である。
ppvvoid**outoptional作成された演算子インターフェイスを受け取る出力ポインタである。
vtbl 9 HRESULT CompileOperator(IDMLOperator* op, DML_EXECUTION_FLAGS flags, GUID* riid, void** ppv)
opIDMLOperator*inコンパイル対象の作成済み演算子 IDMLOperator へのポインタである。
flagsDML_EXECUTION_FLAGSinコンパイル時の挙動を制御する DML_EXECUTION_FLAGS ビットフラグである。
riidGUID*in取得するインターフェイスの GUID(通常 IDMLCompiledOperator)である。
ppvvoid**outoptionalコンパイル済み演算子インターフェイスを受け取る出力ポインタである。
vtbl 10 HRESULT CreateOperatorInitializer(DWORD operatorCount, IDMLCompiledOperator** operators, GUID* riid, void** ppv)
operatorCountDWORDinoperators 配列に含まれるコンパイル済み演算子の個数である。
operatorsIDMLCompiledOperator**inoptional初期化対象のコンパイル済み演算子の配列である。NULL や空配列も可。
riidGUID*in取得するインターフェイスの GUID(IDMLOperatorInitializer)である。
ppvvoid**out作成された初期化子インターフェイスを受け取る出力ポインタである。
vtbl 11 HRESULT CreateCommandRecorder(GUID* riid, void** ppv)
riidGUID*in取得するインターフェイスの GUID(IDMLCommandRecorder)である。
ppvvoid**out作成されたコマンドレコーダーを受け取る出力ポインタである。
vtbl 12 HRESULT CreateBindingTable(DML_BINDING_TABLE_DESC* desc, GUID* riid, void** ppv)
descDML_BINDING_TABLE_DESC*inoptionalバインディングテーブルの構成を記述する DML_BINDING_TABLE_DESC へのポインタである。NULL 可。
riidGUID*in取得するインターフェイスの GUID(IDMLBindingTable)である。
ppvvoid**out作成されたバインディングテーブルを受け取る出力ポインタである。
vtbl 13 HRESULT Evict(DWORD count, IDMLPageable** ppObjects)
countDWORDinppObjects 配列に含まれるオブジェクトの個数である。
ppObjectsIDMLPageable**inGPU メモリから退避(エビクト)する IDMLPageable オブジェクトの配列である。
vtbl 14 HRESULT MakeResident(DWORD count, IDMLPageable** ppObjects)
countDWORDinppObjects 配列に含まれるオブジェクトの個数である。
ppObjectsIDMLPageable**inGPU メモリへ常駐(レジデント)させる IDMLPageable オブジェクトの配列である。
vtbl 15 HRESULT GetDeviceRemovedReason()
vtbl 16 HRESULT GetParentDevice(GUID* riid, void** ppv)
riidGUID*in取得する親 Direct3D 12 デバイスインターフェイスの GUID である。
ppvvoid**out親デバイスインターフェイスを受け取る出力ポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IDMLDevice "{6DBD6437-96FD-423F-A98C-AE5E7C2A573F}"
#usecom global IDMLDevice IID_IDMLDevice "{}"
#comfunc global IDMLDevice_CheckFeatureSupport        7 int,int,sptr,int,sptr
#comfunc global IDMLDevice_CreateOperator             8 var,var,sptr
#comfunc global IDMLDevice_CompileOperator            9 sptr,int,var,sptr
#comfunc global IDMLDevice_CreateOperatorInitializer  10 int,sptr,var,sptr
#comfunc global IDMLDevice_CreateCommandRecorder      11 var,sptr
#comfunc global IDMLDevice_CreateBindingTable         12 var,var,sptr
#comfunc global IDMLDevice_Evict                      13 int,sptr
#comfunc global IDMLDevice_MakeResident               14 int,sptr
#comfunc global IDMLDevice_GetDeviceRemovedReason     15
#comfunc global IDMLDevice_GetParentDevice            16 var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。