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

IDebugSystemObjects

COM
IID6b86fe2c-2c4f-4f0c-9da2-174311acc327継承元IUnknown自前メソッド開始 vtbl3

メソッド 29

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

vtbl 3 HRESULT GetEventThread(DWORD* Id)
IdDWORD*out現在のイベントが発生したスレッドのエンジン ID を受け取るポインタである。
vtbl 4 HRESULT GetEventProcess(DWORD* Id)
IdDWORD*out現在のイベントが発生したプロセスのエンジン ID を受け取るポインタである。
vtbl 5 HRESULT GetCurrentThreadId(DWORD* Id)
IdDWORD*out現在のスレッドのエンジン ID を受け取るポインタである。
vtbl 6 HRESULT SetCurrentThreadId(DWORD Id)
IdDWORDin現在のスレッドとして設定するスレッドのエンジン ID を指定する。
vtbl 7 HRESULT GetCurrentProcessId(DWORD* Id)
IdDWORD*out現在のプロセスのエンジン ID を受け取るポインタである。
vtbl 8 HRESULT SetCurrentProcessId(DWORD Id)
IdDWORDin現在のプロセスとして設定するプロセスのエンジン ID を指定する。
vtbl 9 HRESULT GetNumberThreads(DWORD* Number)
NumberDWORD*out現在のプロセス内のスレッド数を受け取るポインタである。
vtbl 10 HRESULT GetTotalNumberThreads(DWORD* Total, DWORD* LargestProcess)
TotalDWORD*out全プロセスのスレッド総数を受け取るポインタである。
LargestProcessDWORD*out最もスレッド数の多いプロセスのスレッド数を受け取るポインタである。
vtbl 11 HRESULT GetThreadIdsByIndex(DWORD Start, DWORD Count, DWORD* Ids, DWORD* SysIds)
StartDWORDin取得を開始するスレッドのインデックスを指定する。
CountDWORDin取得するスレッドの個数を指定する。
IdsDWORD*outoptionalスレッドのエンジン ID の配列を受け取るポインタである。不要なら NULL を指定できる。
SysIdsDWORD*outoptionalスレッドのシステム ID の配列を受け取るポインタである。不要なら NULL を指定できる。
vtbl 12 HRESULT GetThreadIdByProcessor(DWORD Processor, DWORD* Id)
ProcessorDWORDin対象プロセッサのインデックスを指定する。
IdDWORD*outそのプロセッサ上で実行中のスレッドのエンジン ID を受け取るポインタである。
vtbl 13 HRESULT GetCurrentThreadDataOffset(ULONGLONG* Offset)
OffsetULONGLONG*out現在のスレッドのスレッドデータ(TEB 等)の仮想アドレスを受け取るポインタである。
vtbl 14 HRESULT GetThreadIdByDataOffset(ULONGLONG Offset, DWORD* Id)
OffsetULONGLONGinスレッドデータの仮想アドレスを指定する。
IdDWORD*out対応するスレッドのエンジン ID を受け取るポインタである。
vtbl 15 HRESULT GetCurrentThreadTeb(ULONGLONG* Offset)
OffsetULONGLONG*out現在のスレッドの TEB(スレッド環境ブロック)の仮想アドレスを受け取るポインタである。
vtbl 16 HRESULT GetThreadIdByTeb(ULONGLONG Offset, DWORD* Id)
OffsetULONGLONGinスレッドの TEB の仮想アドレスを指定する。
IdDWORD*out対応するスレッドのエンジン ID を受け取るポインタである。
vtbl 17 HRESULT GetCurrentThreadSystemId(DWORD* SysId)
SysIdDWORD*out現在のスレッドのシステム ID を受け取るポインタである。
vtbl 18 HRESULT GetThreadIdBySystemId(DWORD SysId, DWORD* Id)
SysIdDWORDin対象スレッドのシステム ID を指定する。
IdDWORD*out対応するスレッドのエンジン ID を受け取るポインタである。
vtbl 19 HRESULT GetCurrentThreadHandle(ULONGLONG* Handle)
HandleULONGLONG*out現在のスレッドのシステムハンドルを受け取るポインタである。
vtbl 20 HRESULT GetThreadIdByHandle(ULONGLONG Handle, DWORD* Id)
HandleULONGLONGin対象スレッドのシステムハンドルを指定する。
IdDWORD*out対応するスレッドのエンジン ID を受け取るポインタである。
vtbl 21 HRESULT GetNumberProcesses(DWORD* Number)
NumberDWORD*outデバッグ対象のプロセス数を受け取るポインタである。
vtbl 22 HRESULT GetProcessIdsByIndex(DWORD Start, DWORD Count, DWORD* Ids, DWORD* SysIds)
StartDWORDin取得を開始するプロセスのインデックスを指定する。
CountDWORDin取得するプロセスの個数を指定する。
IdsDWORD*outoptionalプロセスのエンジン ID の配列を受け取るポインタである。不要なら NULL を指定できる。
SysIdsDWORD*outoptionalプロセスのシステム ID の配列を受け取るポインタである。不要なら NULL を指定できる。
vtbl 23 HRESULT GetCurrentProcessDataOffset(ULONGLONG* Offset)
OffsetULONGLONG*out現在のプロセスのプロセスデータ(PEB 等)の仮想アドレスを受け取るポインタである。
vtbl 24 HRESULT GetProcessIdByDataOffset(ULONGLONG Offset, DWORD* Id)
OffsetULONGLONGinプロセスデータの仮想アドレスを指定する。
IdDWORD*out対応するプロセスのエンジン ID を受け取るポインタである。
vtbl 25 HRESULT GetCurrentProcessPeb(ULONGLONG* Offset)
OffsetULONGLONG*out現在のプロセスの PEB(プロセス環境ブロック)の仮想アドレスを受け取るポインタである。
vtbl 26 HRESULT GetProcessIdByPeb(ULONGLONG Offset, DWORD* Id)
OffsetULONGLONGinプロセスの PEB の仮想アドレスを指定する。
IdDWORD*out対応するプロセスのエンジン ID を受け取るポインタである。
vtbl 27 HRESULT GetCurrentProcessSystemId(DWORD* SysId)
SysIdDWORD*out現在のプロセスのシステム ID(プロセス ID)を受け取るポインタである。
vtbl 28 HRESULT GetProcessIdBySystemId(DWORD SysId, DWORD* Id)
SysIdDWORDin対象プロセスのシステム ID を指定する。
IdDWORD*out対応するプロセスのエンジン ID を受け取るポインタである。
vtbl 29 HRESULT GetCurrentProcessHandle(ULONGLONG* Handle)
HandleULONGLONG*out現在のプロセスのシステムハンドルを受け取るポインタである。
vtbl 30 HRESULT GetProcessIdByHandle(ULONGLONG Handle, DWORD* Id)
HandleULONGLONGin対象プロセスのシステムハンドルを指定する。
IdDWORD*out対応するプロセスのエンジン ID を受け取るポインタである。
vtbl 31 HRESULT GetCurrentProcessExecutableName(LPSTR Buffer, DWORD BufferSize, DWORD* ExeSize)
BufferLPSTRoutoptional実行可能ファイル名を受け取るバッファへのポインタである。NULL を指定すると必要なサイズのみを問い合わせできる。
BufferSizeDWORDinバッファのサイズ(バイト単位)を指定する。
ExeSizeDWORD*outoptional実行可能ファイル名のサイズ(バイト単位)を受け取るポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IDebugSystemObjects "{6B86FE2C-2C4F-4F0C-9DA2-174311ACC327}"
#usecom global IDebugSystemObjects IID_IDebugSystemObjects "{}"
#comfunc global IDebugSystemObjects_GetEventThread                   3 var
#comfunc global IDebugSystemObjects_GetEventProcess                  4 var
#comfunc global IDebugSystemObjects_GetCurrentThreadId               5 var
#comfunc global IDebugSystemObjects_SetCurrentThreadId               6 int
#comfunc global IDebugSystemObjects_GetCurrentProcessId              7 var
#comfunc global IDebugSystemObjects_SetCurrentProcessId              8 int
#comfunc global IDebugSystemObjects_GetNumberThreads                 9 var
#comfunc global IDebugSystemObjects_GetTotalNumberThreads            10 var,var
#comfunc global IDebugSystemObjects_GetThreadIdsByIndex              11 int,int,var,var
#comfunc global IDebugSystemObjects_GetThreadIdByProcessor           12 int,var
#comfunc global IDebugSystemObjects_GetCurrentThreadDataOffset       13 var
#comfunc global IDebugSystemObjects_GetThreadIdByDataOffset          14 int64,var
#comfunc global IDebugSystemObjects_GetCurrentThreadTeb              15 var
#comfunc global IDebugSystemObjects_GetThreadIdByTeb                 16 int64,var
#comfunc global IDebugSystemObjects_GetCurrentThreadSystemId         17 var
#comfunc global IDebugSystemObjects_GetThreadIdBySystemId            18 int,var
#comfunc global IDebugSystemObjects_GetCurrentThreadHandle           19 var
#comfunc global IDebugSystemObjects_GetThreadIdByHandle              20 int64,var
#comfunc global IDebugSystemObjects_GetNumberProcesses               21 var
#comfunc global IDebugSystemObjects_GetProcessIdsByIndex             22 int,int,var,var
#comfunc global IDebugSystemObjects_GetCurrentProcessDataOffset      23 var
#comfunc global IDebugSystemObjects_GetProcessIdByDataOffset         24 int64,var
#comfunc global IDebugSystemObjects_GetCurrentProcessPeb             25 var
#comfunc global IDebugSystemObjects_GetProcessIdByPeb                26 int64,var
#comfunc global IDebugSystemObjects_GetCurrentProcessSystemId        27 var
#comfunc global IDebugSystemObjects_GetProcessIdBySystemId           28 int,var
#comfunc global IDebugSystemObjects_GetCurrentProcessHandle          29 var
#comfunc global IDebugSystemObjects_GetProcessIdByHandle             30 int64,var
#comfunc global IDebugSystemObjects_GetCurrentProcessExecutableName  31 var,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。