Win32 API 日本語リファレンス
ホームSystem.Diagnostics.Debug.Extensions › IDebugFailureAnalysis3

IDebugFailureAnalysis3

COM
IID3627dc67-fd45-42ff-9ba4-4a67ee64619f継承元IUnknown自前メソッド開始 vtbl3

メソッド 40

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

vtbl 3 DWORD GetFailureClass()
vtbl 4 DEBUG_FAILURE_TYPE GetFailureType()
vtbl 5 DWORD GetFailureCode()
vtbl 6 FA_ENTRY* Get(DEBUG_FLR_PARAM_TYPE Tag)
TagDEBUG_FLR_PARAM_TYPEin取得する障害分析エントリを識別するタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
vtbl 7 FA_ENTRY* GetNext(FA_ENTRY* Entry, DEBUG_FLR_PARAM_TYPE Tag, DEBUG_FLR_PARAM_TYPE TagMask)
EntryFA_ENTRY*in列挙の起点となる現在のエントリ(FA_ENTRY)を指定する。先頭から列挙する場合は NULL を渡す。
TagDEBUG_FLR_PARAM_TYPEin列挙対象を絞り込むタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
TagMaskDEBUG_FLR_PARAM_TYPEinタグの比較に適用するマスク(DEBUG_FLR_PARAM_TYPE)を指定する。
vtbl 8 FA_ENTRY* GetString(DEBUG_FLR_PARAM_TYPE Tag, LPSTR Str, DWORD MaxSize)
TagDEBUG_FLR_PARAM_TYPEin値を取得する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
StrLPSTRoutタグの文字列値を受け取るバッファである。
MaxSizeDWORDinStr バッファの最大サイズ(バイト数)を指定する。
vtbl 9 FA_ENTRY* GetBuffer(DEBUG_FLR_PARAM_TYPE Tag, void* Buf, DWORD Size)
TagDEBUG_FLR_PARAM_TYPEin値を取得する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
Bufvoid*outタグのバイナリデータを受け取るバッファへのポインタである。
SizeDWORDinBuf バッファのサイズ(バイト数)を指定する。
vtbl 10 FA_ENTRY* GetUlong(DEBUG_FLR_PARAM_TYPE Tag, DWORD* Value)
TagDEBUG_FLR_PARAM_TYPEin値を取得する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
ValueDWORD*outタグの 32 ビット符号なし整数値を受け取る。
vtbl 11 FA_ENTRY* GetUlong64(DEBUG_FLR_PARAM_TYPE Tag, ULONGLONG* Value)
TagDEBUG_FLR_PARAM_TYPEin値を取得する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
ValueULONGLONG*outタグの 64 ビット符号なし整数値を受け取る。
vtbl 12 FA_ENTRY* NextEntry(FA_ENTRY* Entry)
EntryFA_ENTRY*inoptional列挙の起点となる現在のエントリ(FA_ENTRY)を指定する。先頭から列挙する場合は NULL を渡す。
vtbl 13 FA_ENTRY* SetString(DEBUG_FLR_PARAM_TYPE Tag, LPSTR Str)
TagDEBUG_FLR_PARAM_TYPEin値を設定する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
StrLPSTRinタグに設定する文字列値を指定する。
vtbl 14 FA_ENTRY* SetExtensionCommand(DEBUG_FLR_PARAM_TYPE Tag, LPSTR Extension)
TagDEBUG_FLR_PARAM_TYPEin拡張コマンドを設定する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
ExtensionLPSTRinタグに関連付けるデバッガ拡張コマンド文字列を指定する。
vtbl 15 FA_ENTRY* SetUlong(DEBUG_FLR_PARAM_TYPE Tag, DWORD Value)
TagDEBUG_FLR_PARAM_TYPEin値を設定する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
ValueDWORDinタグに設定する 32 ビット符号なし整数値を指定する。
vtbl 16 FA_ENTRY* SetUlong64(DEBUG_FLR_PARAM_TYPE Tag, ULONGLONG Value)
TagDEBUG_FLR_PARAM_TYPEin値を設定する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
ValueULONGLONGinタグに設定する 64 ビット符号なし整数値を指定する。
vtbl 17 FA_ENTRY* SetBuffer(DEBUG_FLR_PARAM_TYPE Tag, FA_ENTRY_TYPE EntryType, void* Buf, DWORD Size)
TagDEBUG_FLR_PARAM_TYPEin値を設定する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
EntryTypeFA_ENTRY_TYPEin設定するエントリのデータ型(FA_ENTRY_TYPE)を指定する。
Bufvoid*inタグに設定するバイナリデータへのポインタである。
SizeDWORDinBuf データのサイズ(バイト数)を指定する。
vtbl 18 FA_ENTRY* AddString(DEBUG_FLR_PARAM_TYPE Tag, LPSTR Str)
TagDEBUG_FLR_PARAM_TYPEin文字列を追加する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
StrLPSTRinタグに追加する文字列値を指定する。
vtbl 19 FA_ENTRY* AddExtensionCommand(DEBUG_FLR_PARAM_TYPE Tag, LPSTR Extension)
TagDEBUG_FLR_PARAM_TYPEin拡張コマンドを追加する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
ExtensionLPSTRinタグに追加するデバッガ拡張コマンド文字列を指定する。
vtbl 20 FA_ENTRY* AddUlong(DEBUG_FLR_PARAM_TYPE Tag, DWORD Value)
TagDEBUG_FLR_PARAM_TYPEin値を追加する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
ValueDWORDinタグに追加する 32 ビット符号なし整数値を指定する。
vtbl 21 FA_ENTRY* AddUlong64(DEBUG_FLR_PARAM_TYPE Tag, ULONGLONG Value)
TagDEBUG_FLR_PARAM_TYPEin値を追加する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
ValueULONGLONGinタグに追加する 64 ビット符号なし整数値を指定する。
vtbl 22 FA_ENTRY* AddBuffer(DEBUG_FLR_PARAM_TYPE Tag, FA_ENTRY_TYPE EntryType, void* Buf, DWORD Size)
TagDEBUG_FLR_PARAM_TYPEinデータを追加する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
EntryTypeFA_ENTRY_TYPEin追加するエントリのデータ型(FA_ENTRY_TYPE)を指定する。
Bufvoid*inタグに追加するバイナリデータへのポインタである。
SizeDWORDinBuf データのサイズ(バイト数)を指定する。
vtbl 23 HRESULT GetDebugFATagControl(IDebugFAEntryTags** FATagControl)
FATagControlIDebugFAEntryTags**out障害分析エントリのタグを操作する IDebugFAEntryTags インターフェイスを受け取る。
vtbl 24 HRESULT GetAnalysisXml(IXMLDOMElement** ppXMLDOMElement)
ppXMLDOMElementIXMLDOMElement**out障害分析結果を表す XML DOM 要素 IXMLDOMElement を受け取る。
vtbl 25 HRESULT AddStructuredAnalysisData(DEBUG_FLR_PARAM_TYPE Tag, IDebugFailureAnalysis2* Analysis)
TagDEBUG_FLR_PARAM_TYPEin構造化分析データを追加する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。
AnalysisIDebugFailureAnalysis2*in入れ子として追加する構造化された障害分析 IDebugFailureAnalysis2 を指定する。
vtbl 26 HRESULT AddThreads(IUnknown* pDebugFailureThreadEnum)
pDebugFailureThreadEnumIUnknown*in分析に追加するスレッド群を列挙するオブジェクトへの IUnknown ポインタである。
vtbl 27 HRESULT AttributeGet(DWORD nIndex, VARIANT* pValue)
nIndexDWORDin値を取得する属性のインデックスを指定する。
pValueVARIANT*out指定インデックスの属性値を VARIANT として受け取る。
vtbl 28 HRESULT AttributeGetName(DWORD nIndex, LPWSTR* pName)
nIndexDWORDin名前を取得する属性のインデックスを指定する。
pNameLPWSTR*out指定インデックスの属性名を受け取る文字列ポインタである。呼び出し側が解放する。
vtbl 29 HRESULT AttributeSet(DWORD nIndex, VARIANT Value)
nIndexDWORDin値を設定する属性のインデックスを指定する。
ValueVARIANTin属性に設定する VARIANT 値を指定する。
vtbl 30 HRESULT BlameApplication(LPWSTR Postfix)
PostfixLPWSTRin障害の原因をアプリケーションに帰属させる際に付加する接尾辞文字列を指定する。
vtbl 31 HRESULT BlameProcess(LPWSTR Postfix)
PostfixLPWSTRin障害の原因をプロセスに帰属させる際に付加する接尾辞文字列を指定する。
vtbl 32 HRESULT BlameThread(IUnknown* pThread)
pThreadIUnknown*in障害の原因として帰属させるスレッドオブジェクトへの IUnknown ポインタである。
vtbl 33 HRESULT BlameStitch(IUnknown* pThread, LPWSTR Stitch)
pThreadIUnknown*inスティッチ(コールスタック連結)による帰属対象のスレッドオブジェクトへの IUnknown ポインタである。
StitchLPWSTRinスティッチに用いる識別文字列を指定する。
vtbl 34 HRESULT BlameTEB(ULONGLONG Address)
AddressULONGLONGin障害の原因として帰属させるスレッド環境ブロック(TEB)のアドレスを指定する。
vtbl 35 HRESULT BlameETHREAD(ULONGLONG Address)
AddressULONGLONGin障害の原因として帰属させるカーネルの ETHREAD 構造体のアドレスを指定する。
vtbl 36 HRESULT ProblemClassIsSet(DWORD nIndex, VARIANT_BOOL* pSet)
nIndexDWORDin設定状態を確認する問題クラスのインデックスを指定する。
pSetVARIANT_BOOL*out指定の問題クラスが設定済みかどうかを示す VARIANT_BOOL を受け取る。
vtbl 37 HRESULT ProblemClassDelete(DWORD nIndex)
nIndexDWORDin削除する問題クラスのインデックスを指定する。
vtbl 38 HRESULT ProblemClassSet(DWORD nIndex)
nIndexDWORDin設定する問題クラスのインデックスを指定する。
vtbl 39 HRESULT ProblemClassSetBSTR(DWORD nIndex, LPWSTR Value)
nIndexDWORDin設定する問題クラスのインデックスを指定する。
ValueLPWSTRin問題クラスに設定する文字列値を指定する。
vtbl 40 HRESULT SetAdditionalXML(LPWSTR Key, IUnknown* pXMLDOMElement)
KeyLPWSTRin追加 XML データを識別するキー文字列を指定する。
pXMLDOMElementIUnknown*inキーに関連付ける XML DOM 要素への IUnknown ポインタである。
vtbl 41 HRESULT GetAdditionalXML(LPWSTR Key, IUnknown** ppXMLDOMElement)
KeyLPWSTRin取得する追加 XML データを識別するキー文字列を指定する。
ppXMLDOMElementIUnknown**outキーに関連付けられた XML DOM 要素への IUnknown ポインタを受け取る。
vtbl 42 HRESULT DeleteAdditionalXML(LPWSTR Key)
KeyLPWSTRin削除する追加 XML データを識別するキー文字列を指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IDebugFailureAnalysis3 "{3627DC67-FD45-42FF-9BA4-4A67EE64619F}"
#usecom global IDebugFailureAnalysis3 IID_IDebugFailureAnalysis3 "{}"
#comfunc global IDebugFailureAnalysis3_GetFailureClass            3
#comfunc global IDebugFailureAnalysis3_GetFailureType             4
#comfunc global IDebugFailureAnalysis3_GetFailureCode             5
#comfunc global IDebugFailureAnalysis3_Get                        6 int
#comfunc global IDebugFailureAnalysis3_GetNext                    7 var,int,int
#comfunc global IDebugFailureAnalysis3_GetString                  8 int,var,int
#comfunc global IDebugFailureAnalysis3_GetBuffer                  9 int,sptr,int
#comfunc global IDebugFailureAnalysis3_GetUlong                   10 int,var
#comfunc global IDebugFailureAnalysis3_GetUlong64                 11 int,var
#comfunc global IDebugFailureAnalysis3_NextEntry                  12 var
#comfunc global IDebugFailureAnalysis3_SetString                  13 int,str
#comfunc global IDebugFailureAnalysis3_SetExtensionCommand        14 int,str
#comfunc global IDebugFailureAnalysis3_SetUlong                   15 int,int
#comfunc global IDebugFailureAnalysis3_SetUlong64                 16 int,int64
#comfunc global IDebugFailureAnalysis3_SetBuffer                  17 int,int,sptr,int
#comfunc global IDebugFailureAnalysis3_AddString                  18 int,str
#comfunc global IDebugFailureAnalysis3_AddExtensionCommand        19 int,str
#comfunc global IDebugFailureAnalysis3_AddUlong                   20 int,int
#comfunc global IDebugFailureAnalysis3_AddUlong64                 21 int,int64
#comfunc global IDebugFailureAnalysis3_AddBuffer                  22 int,int,sptr,int
#comfunc global IDebugFailureAnalysis3_GetDebugFATagControl       23 sptr
#comfunc global IDebugFailureAnalysis3_GetAnalysisXml             24 sptr
#comfunc global IDebugFailureAnalysis3_AddStructuredAnalysisData  25 int,sptr
#comfunc global IDebugFailureAnalysis3_AddThreads                 26 sptr
#comfunc global IDebugFailureAnalysis3_AttributeGet               27 int,var
#comfunc global IDebugFailureAnalysis3_AttributeGetName           28 int,var
#comfunc global IDebugFailureAnalysis3_AttributeSet               29 int,int
#comfunc global IDebugFailureAnalysis3_BlameApplication           30 wstr
#comfunc global IDebugFailureAnalysis3_BlameProcess               31 wstr
#comfunc global IDebugFailureAnalysis3_BlameThread                32 sptr
#comfunc global IDebugFailureAnalysis3_BlameStitch                33 sptr,wstr
#comfunc global IDebugFailureAnalysis3_BlameTEB                   34 int64
#comfunc global IDebugFailureAnalysis3_BlameETHREAD               35 int64
#comfunc global IDebugFailureAnalysis3_ProblemClassIsSet          36 int,var
#comfunc global IDebugFailureAnalysis3_ProblemClassDelete         37 int
#comfunc global IDebugFailureAnalysis3_ProblemClassSet            38 int
#comfunc global IDebugFailureAnalysis3_ProblemClassSetBSTR        39 int,wstr
#comfunc global IDebugFailureAnalysis3_SetAdditionalXML           40 wstr,sptr
#comfunc global IDebugFailureAnalysis3_GetAdditionalXML           41 wstr,sptr
#comfunc global IDebugFailureAnalysis3_DeleteAdditionalXML        42 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。