ホーム › System.Diagnostics.Debug.Extensions › IDebugHostMemory
IDebugHostMemory
COMメソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT ReadBytes(IDebugHostContext* context, Location location, void* buffer, ULONGLONG bufferSize, ULONGLONG* bytesRead)
| context | IDebugHostContext* | in | メモリを読み取る対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。 |
| location | Location | in | 読み取りを開始するアドレス位置を表す Location を指定する。 |
| buffer | void* | out | 読み取ったバイト列を受け取るバッファを指すポインタである。[out] 引数である。 |
| bufferSize | ULONGLONG | in | buffer のサイズおよび読み取りを試みるバイト数を指定する。 |
| bytesRead | ULONGLONG* | outoptional | 実際に読み取られたバイト数を受け取る ULONGLONG へのポインタである。[out] 引数であり、不要な場合は NULL を指定できる。 |
vtbl 4 HRESULT WriteBytes(IDebugHostContext* context, Location location, void* buffer, ULONGLONG bufferSize, ULONGLONG* bytesWritten)
| context | IDebugHostContext* | in | メモリを書き込む対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。 |
| location | Location | in | 書き込みを開始するアドレス位置を表す Location を指定する。 |
| buffer | void* | in | 書き込むバイト列を保持するバッファを指すポインタである。 |
| bufferSize | ULONGLONG | in | 書き込みを試みるバイト数を指定する。 |
| bytesWritten | ULONGLONG* | outoptional | 実際に書き込まれたバイト数を受け取る ULONGLONG へのポインタである。[out] 引数であり、不要な場合は NULL を指定できる。 |
vtbl 5 HRESULT ReadPointers(IDebugHostContext* context, Location location, ULONGLONG count, ULONGLONG* pointers)
| context | IDebugHostContext* | in | メモリを読み取る対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。 |
| location | Location | in | ポインタの読み取りを開始するアドレス位置を表す Location を指定する。 |
| count | ULONGLONG | in | 読み取るポインタの個数を指定する。 |
| pointers | ULONGLONG* | out | 読み取ったポインタ値を受け取る ULONGLONG 配列を指すポインタである。要素数は count で指定する。[out] 引数である。 |
vtbl 6 HRESULT WritePointers(IDebugHostContext* context, Location location, ULONGLONG count, ULONGLONG* pointers)
| context | IDebugHostContext* | in | メモリを書き込む対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。 |
| location | Location | in | ポインタの書き込みを開始するアドレス位置を表す Location を指定する。 |
| count | ULONGLONG | in | 書き込むポインタの個数を指定する。 |
| pointers | ULONGLONG* | in | 書き込むポインタ値を保持する ULONGLONG 配列を指すポインタである。要素数は count で指定する。 |
vtbl 7 HRESULT GetDisplayStringForLocation(IDebugHostContext* context, Location location, BYTE verbose, LPWSTR* locationName)
| context | IDebugHostContext* | in | 表示文字列を生成する対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。 |
| location | Location | in | 表示文字列を生成する対象のアドレス位置を表す Location を指定する。 |
| verbose | BYTE | in | 詳細な表示文字列を生成するか(0 以外)、簡潔にするか(0)を指定するブール値である。 |
| locationName | LPWSTR* | 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 指定が可能。#define global IID_IDebugHostMemory "{212149C9-9183-4A3E-B00E-4FD1DC95339B}" #usecom global IDebugHostMemory IID_IDebugHostMemory "{}" #comfunc global IDebugHostMemory_ReadBytes 3 sptr,int,sptr,int64,sptr #comfunc global IDebugHostMemory_WriteBytes 4 sptr,int,sptr,int64,sptr #comfunc global IDebugHostMemory_ReadPointers 5 sptr,int,int64,sptr #comfunc global IDebugHostMemory_WritePointers 6 sptr,int,int64,sptr #comfunc global IDebugHostMemory_GetDisplayStringForLocation 7 sptr,int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。