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

IDebugRegisters2

COM
IID1656afa9-19c6-4e3a-97e7-5dc9160cf9c4継承元IUnknown自前メソッド開始 vtbl3

メソッド 26

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

vtbl 3 HRESULT GetNumberRegisters(DWORD* Number)
NumberDWORD*outレジスタの総数を受け取るポインタである。
vtbl 4 HRESULT GetDescription(DWORD Register, LPSTR NameBuffer, DWORD NameBufferSize, DWORD* NameSize, DEBUG_REGISTER_DESCRIPTION* Desc)
RegisterDWORDin対象レジスタのインデックスを指定する。
NameBufferLPSTRoutoptionalレジスタ名を受け取るバッファへのポインタである。NULL を指定すると必要なサイズのみを問い合わせできる。
NameBufferSizeDWORDin名前バッファのサイズ(文字数)を指定する。
NameSizeDWORD*outoptionalレジスタ名のサイズ(終端の NULL を含むバイト数)を受け取るポインタである。
DescDEBUG_REGISTER_DESCRIPTION*outoptionalレジスタの詳細を受け取る DEBUG_REGISTER_DESCRIPTION 構造体へのポインタである。
vtbl 5 HRESULT GetIndexByName(LPSTR Name, DWORD* Index)
NameLPSTRin検索するレジスタの名前を指定する。
IndexDWORD*outレジスタのインデックスを受け取るポインタである。
vtbl 6 HRESULT GetValue(DWORD Register, DEBUG_VALUE* Value)
RegisterDWORDin対象レジスタのインデックスを指定する。
ValueDEBUG_VALUE*out取得したレジスタ値を受け取る DEBUG_VALUE 構造体へのポインタである。
vtbl 7 HRESULT SetValue(DWORD Register, DEBUG_VALUE* Value)
RegisterDWORDin対象レジスタのインデックスを指定する。
ValueDEBUG_VALUE*in設定するレジスタ値を保持する DEBUG_VALUE 構造体へのポインタである。
vtbl 8 HRESULT GetValues(DWORD Count, DWORD* Indices, DWORD Start, DEBUG_VALUE* Values)
CountDWORDin取得するレジスタの個数を指定する。
IndicesDWORD*inoptional取得するレジスタのインデックス配列を指定する。NULL の場合は Start から連続して取得する。
StartDWORDinIndices が NULL のとき取得を開始するレジスタのインデックスを指定する。
ValuesDEBUG_VALUE*out取得したレジスタ値の配列を受け取る DEBUG_VALUE 構造体配列へのポインタである。
vtbl 9 HRESULT SetValues(DWORD Count, DWORD* Indices, DWORD Start, DEBUG_VALUE* Values)
CountDWORDin設定するレジスタの個数を指定する。
IndicesDWORD*inoptional設定するレジスタのインデックス配列を指定する。NULL の場合は Start から連続して設定する。
StartDWORDinIndices が NULL のとき設定を開始するレジスタのインデックスを指定する。
ValuesDEBUG_VALUE*in設定するレジスタ値の配列を保持する DEBUG_VALUE 構造体配列へのポインタである。
vtbl 10 HRESULT OutputRegisters(DWORD OutputControl, DWORD Flags)
OutputControlDWORDin出力先を指定する出力制御フラグである。
FlagsDWORDin出力するレジスタの種類を制御するフラグを指定する。
vtbl 11 HRESULT GetInstructionOffset(ULONGLONG* Offset)
OffsetULONGLONG*out現在の命令ポインタが示す仮想アドレスを受け取るポインタである。
vtbl 12 HRESULT GetStackOffset(ULONGLONG* Offset)
OffsetULONGLONG*out現在のスタックポインタが示す仮想アドレスを受け取るポインタである。
vtbl 13 HRESULT GetFrameOffset(ULONGLONG* Offset)
OffsetULONGLONG*out現在のフレームポインタが示す仮想アドレスを受け取るポインタである。
vtbl 14 HRESULT GetDescriptionWide(DWORD Register, LPWSTR NameBuffer, DWORD NameBufferSize, DWORD* NameSize, DEBUG_REGISTER_DESCRIPTION* Desc)
RegisterDWORDin対象レジスタのインデックスを指定する。
NameBufferLPWSTRoutoptionalレジスタ名を受け取るバッファへのポインタである。NULL を指定すると必要なサイズのみを問い合わせできる。
NameBufferSizeDWORDin名前バッファのサイズ(文字数)を指定する。
NameSizeDWORD*outoptionalレジスタ名のサイズ(終端の NULL を含むバイト数)を受け取るポインタである。
DescDEBUG_REGISTER_DESCRIPTION*outoptionalレジスタの詳細を受け取る DEBUG_REGISTER_DESCRIPTION 構造体へのポインタである。
vtbl 15 HRESULT GetIndexByNameWide(LPWSTR Name, DWORD* Index)
NameLPWSTRin検索するレジスタの名前を指定する。
IndexDWORD*outレジスタのインデックスを受け取るポインタである。
vtbl 16 HRESULT GetNumberPseudoRegisters(DWORD* Number)
NumberDWORD*out疑似レジスタの総数を受け取るポインタである。
vtbl 17 HRESULT GetPseudoDescription(DWORD Register, LPSTR NameBuffer, DWORD NameBufferSize, DWORD* NameSize, ULONGLONG* TypeModule, DWORD* TypeId)
RegisterDWORDin対象疑似レジスタのインデックスを指定する。
NameBufferLPSTRoutoptional疑似レジスタ名を受け取るバッファへのポインタである。NULL を指定すると必要なサイズのみを問い合わせできる。
NameBufferSizeDWORDin名前バッファのサイズ(文字数)を指定する。
NameSizeDWORD*outoptional疑似レジスタ名のサイズ(バイト単位)を受け取るポインタである。
TypeModuleULONGLONG*outoptional疑似レジスタの型を含むモジュールのベースアドレスを受け取るポインタである。
TypeIdDWORD*outoptional疑似レジスタの型 ID を受け取るポインタである。
vtbl 18 HRESULT GetPseudoDescriptionWide(DWORD Register, LPWSTR NameBuffer, DWORD NameBufferSize, DWORD* NameSize, ULONGLONG* TypeModule, DWORD* TypeId)
RegisterDWORDin対象疑似レジスタのインデックスを指定する。
NameBufferLPWSTRoutoptional疑似レジスタ名を受け取るバッファへのポインタである。NULL を指定すると必要なサイズのみを問い合わせできる。
NameBufferSizeDWORDin名前バッファのサイズ(文字数)を指定する。
NameSizeDWORD*outoptional疑似レジスタ名のサイズ(バイト単位)を受け取るポインタである。
TypeModuleULONGLONG*outoptional疑似レジスタの型を含むモジュールのベースアドレスを受け取るポインタである。
TypeIdDWORD*outoptional疑似レジスタの型 ID を受け取るポインタである。
vtbl 19 HRESULT GetPseudoIndexByName(LPSTR Name, DWORD* Index)
NameLPSTRin検索する疑似レジスタの名前を指定する。
IndexDWORD*out疑似レジスタのインデックスを受け取るポインタである。
vtbl 20 HRESULT GetPseudoIndexByNameWide(LPWSTR Name, DWORD* Index)
NameLPWSTRin検索する疑似レジスタの名前を指定する。
IndexDWORD*out疑似レジスタのインデックスを受け取るポインタである。
vtbl 21 HRESULT GetPseudoValues(DWORD Source, DWORD Count, DWORD* Indices, DWORD Start, DEBUG_VALUE* Values)
SourceDWORDin疑似レジスタ値の取得元を指定する。
CountDWORDin取得する疑似レジスタの個数を指定する。
IndicesDWORD*inoptional取得する疑似レジスタのインデックス配列を指定する。NULL の場合は Start から連続して取得する。
StartDWORDinIndices が NULL のとき取得を開始する疑似レジスタのインデックスを指定する。
ValuesDEBUG_VALUE*out取得した疑似レジスタ値の配列を受け取る DEBUG_VALUE 構造体配列へのポインタである。
vtbl 22 HRESULT SetPseudoValues(DWORD Source, DWORD Count, DWORD* Indices, DWORD Start, DEBUG_VALUE* Values)
SourceDWORDin疑似レジスタ値の設定先を指定する。
CountDWORDin設定する疑似レジスタの個数を指定する。
IndicesDWORD*inoptional設定する疑似レジスタのインデックス配列を指定する。NULL の場合は Start から連続して設定する。
StartDWORDinIndices が NULL のとき設定を開始する疑似レジスタのインデックスを指定する。
ValuesDEBUG_VALUE*in設定する疑似レジスタ値の配列を保持する DEBUG_VALUE 構造体配列へのポインタである。
vtbl 23 HRESULT GetValues2(DWORD Source, DWORD Count, DWORD* Indices, DWORD Start, DEBUG_VALUE* Values)
SourceDWORDinレジスタ値の取得元(レジスタソース)を指定する。
CountDWORDin取得するレジスタの個数を指定する。
IndicesDWORD*inoptional取得するレジスタのインデックス配列を指定する。NULL の場合は Start から連続して取得する。
StartDWORDinIndices が NULL のとき取得を開始するレジスタのインデックスを指定する。
ValuesDEBUG_VALUE*out取得したレジスタ値の配列を受け取る DEBUG_VALUE 構造体配列へのポインタである。
vtbl 24 HRESULT SetValues2(DWORD Source, DWORD Count, DWORD* Indices, DWORD Start, DEBUG_VALUE* Values)
SourceDWORDinレジスタ値の設定先(レジスタソース)を指定する。
CountDWORDin設定するレジスタの個数を指定する。
IndicesDWORD*inoptional設定するレジスタのインデックス配列を指定する。NULL の場合は Start から連続して設定する。
StartDWORDinIndices が NULL のとき設定を開始するレジスタのインデックスを指定する。
ValuesDEBUG_VALUE*in設定するレジスタ値の配列を保持する DEBUG_VALUE 構造体配列へのポインタである。
vtbl 25 HRESULT OutputRegisters2(DWORD OutputControl, DWORD Source, DWORD Flags)
OutputControlDWORDin出力先を指定する出力制御フラグである。
SourceDWORDinレジスタ値の取得元(レジスタソース)を指定する。
FlagsDWORDin出力するレジスタの種類を制御するフラグを指定する。
vtbl 26 HRESULT GetInstructionOffset2(DWORD Source, ULONGLONG* Offset)
SourceDWORDinレジスタ値の取得元(レジスタソース)を指定する。
OffsetULONGLONG*out現在の命令ポインタが示す仮想アドレスを受け取るポインタである。
vtbl 27 HRESULT GetStackOffset2(DWORD Source, ULONGLONG* Offset)
SourceDWORDinレジスタ値の取得元(レジスタソース)を指定する。
OffsetULONGLONG*out現在のスタックポインタが示す仮想アドレスを受け取るポインタである。
vtbl 28 HRESULT GetFrameOffset2(DWORD Source, ULONGLONG* Offset)
SourceDWORDinレジスタ値の取得元(レジスタソース)を指定する。
OffsetULONGLONG*out現在のフレームポインタが示す仮想アドレスを受け取るポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IDebugRegisters2 "{1656AFA9-19C6-4E3A-97E7-5DC9160CF9C4}"
#usecom global IDebugRegisters2 IID_IDebugRegisters2 "{}"
#comfunc global IDebugRegisters2_GetNumberRegisters        3 var
#comfunc global IDebugRegisters2_GetDescription            4 int,var,int,var,var
#comfunc global IDebugRegisters2_GetIndexByName            5 str,var
#comfunc global IDebugRegisters2_GetValue                  6 int,var
#comfunc global IDebugRegisters2_SetValue                  7 int,var
#comfunc global IDebugRegisters2_GetValues                 8 int,var,int,var
#comfunc global IDebugRegisters2_SetValues                 9 int,var,int,var
#comfunc global IDebugRegisters2_OutputRegisters           10 int,int
#comfunc global IDebugRegisters2_GetInstructionOffset      11 var
#comfunc global IDebugRegisters2_GetStackOffset            12 var
#comfunc global IDebugRegisters2_GetFrameOffset            13 var
#comfunc global IDebugRegisters2_GetDescriptionWide        14 int,var,int,var,var
#comfunc global IDebugRegisters2_GetIndexByNameWide        15 wstr,var
#comfunc global IDebugRegisters2_GetNumberPseudoRegisters  16 var
#comfunc global IDebugRegisters2_GetPseudoDescription      17 int,var,int,var,var,var
#comfunc global IDebugRegisters2_GetPseudoDescriptionWide  18 int,var,int,var,var,var
#comfunc global IDebugRegisters2_GetPseudoIndexByName      19 str,var
#comfunc global IDebugRegisters2_GetPseudoIndexByNameWide  20 wstr,var
#comfunc global IDebugRegisters2_GetPseudoValues           21 int,int,var,int,var
#comfunc global IDebugRegisters2_SetPseudoValues           22 int,int,var,int,var
#comfunc global IDebugRegisters2_GetValues2                23 int,int,var,int,var
#comfunc global IDebugRegisters2_SetValues2                24 int,int,var,int,var
#comfunc global IDebugRegisters2_OutputRegisters2          25 int,int,int
#comfunc global IDebugRegisters2_GetInstructionOffset2     26 int,var
#comfunc global IDebugRegisters2_GetStackOffset2           27 int,var
#comfunc global IDebugRegisters2_GetFrameOffset2           28 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。