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

IDebugSystemObjects4

COM
IID489468e6-7d0f-4af5-87ab-25207454d553継承元IUnknown自前メソッド開始 vtbl3

メソッド 45

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実行可能ファイル名のサイズ(バイト単位)を受け取るポインタである。
vtbl 32 HRESULT GetCurrentProcessUpTime(DWORD* UpTime)
UpTimeDWORD*out現在のプロセスの稼働時間(秒単位)を受け取るポインタである。
vtbl 33 HRESULT GetImplicitThreadDataOffset(ULONGLONG* Offset)
OffsetULONGLONG*out暗黙のスレッドデータ(TEB)の仮想アドレスを受け取るポインタである。
vtbl 34 HRESULT SetImplicitThreadDataOffset(ULONGLONG Offset)
OffsetULONGLONGin暗黙のスレッドデータ(TEB)として設定する仮想アドレスを指定する。
vtbl 35 HRESULT GetImplicitProcessDataOffset(ULONGLONG* Offset)
OffsetULONGLONG*out暗黙のプロセスデータ(PEB)の仮想アドレスを受け取るポインタである。
vtbl 36 HRESULT SetImplicitProcessDataOffset(ULONGLONG Offset)
OffsetULONGLONGin暗黙のプロセスデータ(PEB)として設定する仮想アドレスを指定する。
vtbl 37 HRESULT GetEventSystem(DWORD* Id)
IdDWORD*out現在のイベントが発生したターゲットシステムのエンジン ID を受け取るポインタである。
vtbl 38 HRESULT GetCurrentSystemId(DWORD* Id)
IdDWORD*out現在のターゲットシステムのエンジン ID を受け取るポインタである。
vtbl 39 HRESULT SetCurrentSystemId(DWORD Id)
IdDWORDin現在のターゲットシステムとして設定するシステムのエンジン ID を指定する。
vtbl 40 HRESULT GetNumberSystems(DWORD* Number)
NumberDWORD*outデバッグ対象のターゲットシステム数を受け取るポインタである。
vtbl 41 HRESULT GetSystemIdsByIndex(DWORD Start, DWORD Count, DWORD* Ids)
StartDWORDin取得を開始するシステムのインデックスを指定する。
CountDWORDin取得するシステムの個数を指定する。
IdsDWORD*outターゲットシステムのエンジン ID の配列を受け取るポインタである。
vtbl 42 HRESULT GetTotalNumberThreadsAndProcesses(DWORD* TotalThreads, DWORD* TotalProcesses, DWORD* LargestProcessThreads, DWORD* LargestSystemThreads, DWORD* LargestSystemProcesses)
TotalThreadsDWORD*out全システムを通じたスレッドの総数を受け取るポインタである。
TotalProcessesDWORD*out全システムを通じたプロセスの総数を受け取るポインタである。
LargestProcessThreadsDWORD*out最もスレッド数の多いプロセスのスレッド数を受け取るポインタである。
LargestSystemThreadsDWORD*out最もスレッド数の多いシステムのスレッド数を受け取るポインタである。
LargestSystemProcessesDWORD*out最もプロセス数の多いシステムのプロセス数を受け取るポインタである。
vtbl 43 HRESULT GetCurrentSystemServer(ULONGLONG* Server)
ServerULONGLONG*out現在のターゲットシステムのデバッグサーバーを識別する値を受け取るポインタである。
vtbl 44 HRESULT GetSystemByServer(ULONGLONG Server, DWORD* Id)
ServerULONGLONGin対象とするデバッグサーバーを識別する値を指定する。
IdDWORD*out対応するターゲットシステムのエンジン ID を受け取るポインタである。
vtbl 45 HRESULT GetCurrentSystemServerName(LPSTR Buffer, DWORD BufferSize, DWORD* NameSize)
BufferLPSTRoutoptionalデバッグサーバー名を受け取るバッファへのポインタである。NULL を指定すると必要なサイズのみを問い合わせできる。
BufferSizeDWORDinバッファのサイズ(バイト単位)を指定する。
NameSizeDWORD*outoptionalサーバー名のサイズ(バイト単位)を受け取るポインタである。
vtbl 46 HRESULT GetCurrentProcessExecutableNameWide(LPWSTR Buffer, DWORD BufferSize, DWORD* ExeSize)
BufferLPWSTRoutoptional実行可能ファイル名を受け取るバッファへのポインタである。NULL を指定すると必要なサイズのみを問い合わせできる。
BufferSizeDWORDinバッファのサイズ(文字数)を指定する。
ExeSizeDWORD*outoptional実行可能ファイル名のサイズ(バイト単位)を受け取るポインタである。
vtbl 47 HRESULT GetCurrentSystemServerNameWide(LPWSTR Buffer, DWORD BufferSize, DWORD* NameSize)
BufferLPWSTRoutoptionalデバッグサーバー名を受け取るバッファへのポインタである。NULL を指定すると必要なサイズのみを問い合わせできる。
BufferSizeDWORDinバッファのサイズ(文字数)を指定する。
NameSizeDWORD*outoptionalサーバー名のサイズ(バイト単位)を受け取るポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IDebugSystemObjects4 "{489468E6-7D0F-4AF5-87AB-25207454D553}"
#usecom global IDebugSystemObjects4 IID_IDebugSystemObjects4 "{}"
#comfunc global IDebugSystemObjects4_GetEventThread                       3 var
#comfunc global IDebugSystemObjects4_GetEventProcess                      4 var
#comfunc global IDebugSystemObjects4_GetCurrentThreadId                   5 var
#comfunc global IDebugSystemObjects4_SetCurrentThreadId                   6 int
#comfunc global IDebugSystemObjects4_GetCurrentProcessId                  7 var
#comfunc global IDebugSystemObjects4_SetCurrentProcessId                  8 int
#comfunc global IDebugSystemObjects4_GetNumberThreads                     9 var
#comfunc global IDebugSystemObjects4_GetTotalNumberThreads                10 var,var
#comfunc global IDebugSystemObjects4_GetThreadIdsByIndex                  11 int,int,var,var
#comfunc global IDebugSystemObjects4_GetThreadIdByProcessor               12 int,var
#comfunc global IDebugSystemObjects4_GetCurrentThreadDataOffset           13 var
#comfunc global IDebugSystemObjects4_GetThreadIdByDataOffset              14 int64,var
#comfunc global IDebugSystemObjects4_GetCurrentThreadTeb                  15 var
#comfunc global IDebugSystemObjects4_GetThreadIdByTeb                     16 int64,var
#comfunc global IDebugSystemObjects4_GetCurrentThreadSystemId             17 var
#comfunc global IDebugSystemObjects4_GetThreadIdBySystemId                18 int,var
#comfunc global IDebugSystemObjects4_GetCurrentThreadHandle               19 var
#comfunc global IDebugSystemObjects4_GetThreadIdByHandle                  20 int64,var
#comfunc global IDebugSystemObjects4_GetNumberProcesses                   21 var
#comfunc global IDebugSystemObjects4_GetProcessIdsByIndex                 22 int,int,var,var
#comfunc global IDebugSystemObjects4_GetCurrentProcessDataOffset          23 var
#comfunc global IDebugSystemObjects4_GetProcessIdByDataOffset             24 int64,var
#comfunc global IDebugSystemObjects4_GetCurrentProcessPeb                 25 var
#comfunc global IDebugSystemObjects4_GetProcessIdByPeb                    26 int64,var
#comfunc global IDebugSystemObjects4_GetCurrentProcessSystemId            27 var
#comfunc global IDebugSystemObjects4_GetProcessIdBySystemId               28 int,var
#comfunc global IDebugSystemObjects4_GetCurrentProcessHandle              29 var
#comfunc global IDebugSystemObjects4_GetProcessIdByHandle                 30 int64,var
#comfunc global IDebugSystemObjects4_GetCurrentProcessExecutableName      31 var,int,var
#comfunc global IDebugSystemObjects4_GetCurrentProcessUpTime              32 var
#comfunc global IDebugSystemObjects4_GetImplicitThreadDataOffset          33 var
#comfunc global IDebugSystemObjects4_SetImplicitThreadDataOffset          34 int64
#comfunc global IDebugSystemObjects4_GetImplicitProcessDataOffset         35 var
#comfunc global IDebugSystemObjects4_SetImplicitProcessDataOffset         36 int64
#comfunc global IDebugSystemObjects4_GetEventSystem                       37 var
#comfunc global IDebugSystemObjects4_GetCurrentSystemId                   38 var
#comfunc global IDebugSystemObjects4_SetCurrentSystemId                   39 int
#comfunc global IDebugSystemObjects4_GetNumberSystems                     40 var
#comfunc global IDebugSystemObjects4_GetSystemIdsByIndex                  41 int,int,var
#comfunc global IDebugSystemObjects4_GetTotalNumberThreadsAndProcesses    42 var,var,var,var,var
#comfunc global IDebugSystemObjects4_GetCurrentSystemServer               43 var
#comfunc global IDebugSystemObjects4_GetSystemByServer                    44 int64,var
#comfunc global IDebugSystemObjects4_GetCurrentSystemServerName           45 var,int,var
#comfunc global IDebugSystemObjects4_GetCurrentProcessExecutableNameWide  46 var,int,var
#comfunc global IDebugSystemObjects4_GetCurrentSystemServerNameWide       47 var,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。