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

IDebugHostMemory

COM
IID212149c9-9183-4a3e-b00e-4fd1dc95339b継承元IUnknown自前メソッド開始 vtbl3

メソッド 5

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

vtbl 3 HRESULT ReadBytes(IDebugHostContext* context, Location location, void* buffer, ULONGLONG bufferSize, ULONGLONG* bytesRead)
contextIDebugHostContext*inメモリを読み取る対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。
locationLocationin読み取りを開始するアドレス位置を表す Location を指定する。
buffervoid*out読み取ったバイト列を受け取るバッファを指すポインタである。[out] 引数である。
bufferSizeULONGLONGinbuffer のサイズおよび読み取りを試みるバイト数を指定する。
bytesReadULONGLONG*outoptional実際に読み取られたバイト数を受け取る ULONGLONG へのポインタである。[out] 引数であり、不要な場合は NULL を指定できる。
vtbl 4 HRESULT WriteBytes(IDebugHostContext* context, Location location, void* buffer, ULONGLONG bufferSize, ULONGLONG* bytesWritten)
contextIDebugHostContext*inメモリを書き込む対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。
locationLocationin書き込みを開始するアドレス位置を表す Location を指定する。
buffervoid*in書き込むバイト列を保持するバッファを指すポインタである。
bufferSizeULONGLONGin書き込みを試みるバイト数を指定する。
bytesWrittenULONGLONG*outoptional実際に書き込まれたバイト数を受け取る ULONGLONG へのポインタである。[out] 引数であり、不要な場合は NULL を指定できる。
vtbl 5 HRESULT ReadPointers(IDebugHostContext* context, Location location, ULONGLONG count, ULONGLONG* pointers)
contextIDebugHostContext*inメモリを読み取る対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。
locationLocationinポインタの読み取りを開始するアドレス位置を表す Location を指定する。
countULONGLONGin読み取るポインタの個数を指定する。
pointersULONGLONG*out読み取ったポインタ値を受け取る ULONGLONG 配列を指すポインタである。要素数は count で指定する。[out] 引数である。
vtbl 6 HRESULT WritePointers(IDebugHostContext* context, Location location, ULONGLONG count, ULONGLONG* pointers)
contextIDebugHostContext*inメモリを書き込む対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。
locationLocationinポインタの書き込みを開始するアドレス位置を表す Location を指定する。
countULONGLONGin書き込むポインタの個数を指定する。
pointersULONGLONG*in書き込むポインタ値を保持する ULONGLONG 配列を指すポインタである。要素数は count で指定する。
vtbl 7 HRESULT GetDisplayStringForLocation(IDebugHostContext* context, Location location, BYTE verbose, LPWSTR* locationName)
contextIDebugHostContext*in表示文字列を生成する対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。
locationLocationin表示文字列を生成する対象のアドレス位置を表す Location を指定する。
verboseBYTEin詳細な表示文字列を生成するか(0 以外)、簡潔にするか(0)を指定するブール値である。
locationNameLPWSTR*out位置を表す表示文字列を受け取る UTF-16 文字列ポインタへのポインタである。[out] 引数であり、文字列は呼び出し側が解放する。

HSP用 COM定義

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

出力引数:
#define global IID_IDebugHostMemory "{212149C9-9183-4A3E-B00E-4FD1DC95339B}"
#usecom global IDebugHostMemory IID_IDebugHostMemory "{}"
#comfunc global IDebugHostMemory_ReadBytes                    3 sptr,int,sptr,int64,var
#comfunc global IDebugHostMemory_WriteBytes                   4 sptr,int,sptr,int64,var
#comfunc global IDebugHostMemory_ReadPointers                 5 sptr,int,int64,var
#comfunc global IDebugHostMemory_WritePointers                6 sptr,int,int64,var
#comfunc global IDebugHostMemory_GetDisplayStringForLocation  7 sptr,int,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。