ホーム › System.Diagnostics.Debug.Extensions › IDebugDataSpaces
IDebugDataSpaces
COMメソッド 20
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| Offset | ULONGLONG | in | 読み取りを開始する仮想アドレスを指定する。 |
| Buffer | void* | out | 読み取ったデータを格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | 読み取るバイト数を指定する。 |
| BytesRead | DWORD* | outoptional | 実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
| Offset | ULONGLONG | in | 書き込みを開始する仮想アドレスを指定する。 |
| Buffer | void* | in | 書き込むデータを格納したバッファへのポインタである。 |
| BufferSize | DWORD | in | 書き込むバイト数を指定する。 |
| BytesWritten | DWORD* | outoptional | 実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
vtbl 5 HRESULT SearchVirtual(ULONGLONG Offset, ULONGLONG Length, void* Pattern, DWORD PatternSize, DWORD PatternGranularity, ULONGLONG* MatchOffset)
| Offset | ULONGLONG | in | 検索を開始する仮想アドレスを指定する。 |
| Length | ULONGLONG | in | 検索する範囲のバイト数を指定する。 |
| Pattern | void* | in | 検索するバイトパターンを格納したバッファへのポインタである。 |
| PatternSize | DWORD | in | パターンのサイズをバイト単位で指定する。 |
| PatternGranularity | DWORD | in | パターンを照合する境界の粒度をバイト単位で指定する。 |
| MatchOffset | ULONGLONG* | out | 見つかった位置の仮想アドレスを受け取るポインタである。 |
vtbl 6 HRESULT ReadVirtualUncached(ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesRead)
| Offset | ULONGLONG | in | 読み取りを開始する仮想アドレスを指定する。 |
| Buffer | void* | out | 読み取ったデータを格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | 読み取るバイト数を指定する。 |
| BytesRead | DWORD* | outoptional | 実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
vtbl 7 HRESULT WriteVirtualUncached(ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
| Offset | ULONGLONG | in | 書き込みを開始する仮想アドレスを指定する。 |
| Buffer | void* | in | 書き込むデータを格納したバッファへのポインタである。 |
| BufferSize | DWORD | in | 書き込むバイト数を指定する。 |
| BytesWritten | DWORD* | outoptional | 実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
| Count | DWORD | in | 読み取るポインタの数を指定する。 |
| Offset | ULONGLONG | in | 読み取りを開始する仮想アドレスを指定する。 |
| Ptrs | ULONGLONG* | out | 読み取ったポインタ値を格納する配列へのポインタである。対象のポインタ幅に応じて符号拡張される。 |
| Count | DWORD | in | 書き込むポインタの数を指定する。 |
| Offset | ULONGLONG | in | 書き込みを開始する仮想アドレスを指定する。 |
| Ptrs | ULONGLONG* | in | 書き込むポインタ値を格納した配列へのポインタである。対象のポインタ幅に切り詰められる。 |
| Offset | ULONGLONG | in | 読み取りを開始する物理アドレスを指定する。 |
| Buffer | void* | out | 読み取ったデータを格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | 読み取るバイト数を指定する。 |
| BytesRead | DWORD* | outoptional | 実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
vtbl 11 HRESULT WritePhysical(ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
| Offset | ULONGLONG | in | 書き込みを開始する物理アドレスを指定する。 |
| Buffer | void* | in | 書き込むデータを格納したバッファへのポインタである。 |
| BufferSize | DWORD | in | 書き込むバイト数を指定する。 |
| BytesWritten | DWORD* | outoptional | 実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
vtbl 12 HRESULT ReadControl(DWORD Processor, ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesRead)
| Processor | DWORD | in | 対象とするプロセッサの番号を指定する。 |
| Offset | ULONGLONG | in | 読み取りを開始する制御空間内のオフセットを指定する。 |
| Buffer | void* | out | 読み取ったデータを格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | 読み取るバイト数を指定する。 |
| BytesRead | DWORD* | outoptional | 実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
vtbl 13 HRESULT WriteControl(DWORD Processor, ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
| Processor | DWORD | in | 対象とするプロセッサの番号を指定する。 |
| Offset | ULONGLONG | in | 書き込みを開始する制御空間内のオフセットを指定する。 |
| Buffer | void* | in | 書き込むデータを格納したバッファへのポインタである。 |
| BufferSize | DWORD | in | 書き込むバイト数を指定する。 |
| BytesWritten | DWORD* | outoptional | 実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
vtbl 14 HRESULT ReadIo(DWORD InterfaceType, DWORD BusNumber, DWORD AddressSpace, ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesRead)
| InterfaceType | DWORD | in | 対象 I/O バスのインターフェイス種別を指定する。 |
| BusNumber | DWORD | in | 対象 I/O バスの番号を指定する。 |
| AddressSpace | DWORD | in | 対象とするアドレス空間を指定する。 |
| Offset | ULONGLONG | in | 読み取りを開始する I/O アドレスを指定する。 |
| Buffer | void* | out | 読み取ったデータを格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | 読み取るバイト数を指定する。 |
| BytesRead | DWORD* | outoptional | 実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
vtbl 15 HRESULT WriteIo(DWORD InterfaceType, DWORD BusNumber, DWORD AddressSpace, ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
| InterfaceType | DWORD | in | 対象 I/O バスのインターフェイス種別を指定する。 |
| BusNumber | DWORD | in | 対象 I/O バスの番号を指定する。 |
| AddressSpace | DWORD | in | 対象とするアドレス空間を指定する。 |
| Offset | ULONGLONG | in | 書き込みを開始する I/O アドレスを指定する。 |
| Buffer | void* | in | 書き込むデータを格納したバッファへのポインタである。 |
| BufferSize | DWORD | in | 書き込むバイト数を指定する。 |
| BytesWritten | DWORD* | outoptional | 実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
| Msr | DWORD | in | 読み取るモデル固有レジスタ (MSR) の番号を指定する。 |
| Value | ULONGLONG* | out | 読み取った MSR の値を受け取るポインタである。 |
| Msr | DWORD | in | 書き込むモデル固有レジスタ (MSR) の番号を指定する。 |
| Value | ULONGLONG | in | MSR に書き込む値を指定する。 |
vtbl 18 HRESULT ReadBusData(DWORD BusDataType, DWORD BusNumber, DWORD SlotNumber, DWORD Offset, void* Buffer, DWORD BufferSize, DWORD* BytesRead)
| BusDataType | DWORD | in | 対象バスのデータ種別を指定する。 |
| BusNumber | DWORD | in | 対象バスの番号を指定する。 |
| SlotNumber | DWORD | in | 対象スロットの番号を指定する。 |
| Offset | DWORD | in | 読み取りを開始するバスデータ内のオフセットを指定する。 |
| Buffer | void* | out | 読み取ったデータを格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | 読み取るバイト数を指定する。 |
| BytesRead | DWORD* | outoptional | 実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
vtbl 19 HRESULT WriteBusData(DWORD BusDataType, DWORD BusNumber, DWORD SlotNumber, DWORD Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
| BusDataType | DWORD | in | 対象バスのデータ種別を指定する。 |
| BusNumber | DWORD | in | 対象バスの番号を指定する。 |
| SlotNumber | DWORD | in | 対象スロットの番号を指定する。 |
| Offset | DWORD | in | 書き込みを開始するバスデータ内のオフセットを指定する。 |
| Buffer | void* | in | 書き込むデータを格納したバッファへのポインタである。 |
| BufferSize | DWORD | in | 書き込むバイト数を指定する。 |
| BytesWritten | DWORD* | outoptional | 実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。 |
vtbl 20 HRESULT CheckLowMemory()
| Index | DWORD | in | 取得するデバッガデータブロックの項目インデックスを指定する。 |
| Buffer | void* | out | 取得したデータを格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | Buffer のサイズをバイト単位で指定する。 |
| DataSize | DWORD* | outoptional | データの格納に必要なバイト数を受け取るポインタである。 |
vtbl 22 HRESULT ReadProcessorSystemData(DWORD Processor, DWORD Index, void* Buffer, DWORD BufferSize, DWORD* DataSize)
| Processor | DWORD | in | 対象とするプロセッサの番号を指定する。 |
| Index | DWORD | in | 取得するプロセッサシステムデータの種類を指定する。 |
| Buffer | void* | out | 取得したデータを格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | Buffer のサイズをバイト単位で指定する。 |
| DataSize | DWORD* | outoptional | データの格納に必要なバイト数を受け取るポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDebugDataSpaces "{88F7DFAB-3EA7-4C3A-AEFB-C4E8106173AA}" #usecom global IDebugDataSpaces IID_IDebugDataSpaces "{}" #comfunc global IDebugDataSpaces_ReadVirtual 3 int64,sptr,int,var #comfunc global IDebugDataSpaces_WriteVirtual 4 int64,sptr,int,var #comfunc global IDebugDataSpaces_SearchVirtual 5 int64,int64,sptr,int,int,var #comfunc global IDebugDataSpaces_ReadVirtualUncached 6 int64,sptr,int,var #comfunc global IDebugDataSpaces_WriteVirtualUncached 7 int64,sptr,int,var #comfunc global IDebugDataSpaces_ReadPointersVirtual 8 int,int64,var #comfunc global IDebugDataSpaces_WritePointersVirtual 9 int,int64,var #comfunc global IDebugDataSpaces_ReadPhysical 10 int64,sptr,int,var #comfunc global IDebugDataSpaces_WritePhysical 11 int64,sptr,int,var #comfunc global IDebugDataSpaces_ReadControl 12 int,int64,sptr,int,var #comfunc global IDebugDataSpaces_WriteControl 13 int,int64,sptr,int,var #comfunc global IDebugDataSpaces_ReadIo 14 int,int,int,int64,sptr,int,var #comfunc global IDebugDataSpaces_WriteIo 15 int,int,int,int64,sptr,int,var #comfunc global IDebugDataSpaces_ReadMsr 16 int,var #comfunc global IDebugDataSpaces_WriteMsr 17 int,int64 #comfunc global IDebugDataSpaces_ReadBusData 18 int,int,int,int,sptr,int,var #comfunc global IDebugDataSpaces_WriteBusData 19 int,int,int,int,sptr,int,var #comfunc global IDebugDataSpaces_CheckLowMemory 20 #comfunc global IDebugDataSpaces_ReadDebuggerData 21 int,sptr,int,var #comfunc global IDebugDataSpaces_ReadProcessorSystemData 22 int,int,sptr,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDebugDataSpaces "{88F7DFAB-3EA7-4C3A-AEFB-C4E8106173AA}" #usecom global IDebugDataSpaces IID_IDebugDataSpaces "{}" #comfunc global IDebugDataSpaces_ReadVirtual 3 int64,sptr,int,sptr #comfunc global IDebugDataSpaces_WriteVirtual 4 int64,sptr,int,sptr #comfunc global IDebugDataSpaces_SearchVirtual 5 int64,int64,sptr,int,int,sptr #comfunc global IDebugDataSpaces_ReadVirtualUncached 6 int64,sptr,int,sptr #comfunc global IDebugDataSpaces_WriteVirtualUncached 7 int64,sptr,int,sptr #comfunc global IDebugDataSpaces_ReadPointersVirtual 8 int,int64,sptr #comfunc global IDebugDataSpaces_WritePointersVirtual 9 int,int64,sptr #comfunc global IDebugDataSpaces_ReadPhysical 10 int64,sptr,int,sptr #comfunc global IDebugDataSpaces_WritePhysical 11 int64,sptr,int,sptr #comfunc global IDebugDataSpaces_ReadControl 12 int,int64,sptr,int,sptr #comfunc global IDebugDataSpaces_WriteControl 13 int,int64,sptr,int,sptr #comfunc global IDebugDataSpaces_ReadIo 14 int,int,int,int64,sptr,int,sptr #comfunc global IDebugDataSpaces_WriteIo 15 int,int,int,int64,sptr,int,sptr #comfunc global IDebugDataSpaces_ReadMsr 16 int,sptr #comfunc global IDebugDataSpaces_WriteMsr 17 int,int64 #comfunc global IDebugDataSpaces_ReadBusData 18 int,int,int,int,sptr,int,sptr #comfunc global IDebugDataSpaces_WriteBusData 19 int,int,int,int,sptr,int,sptr #comfunc global IDebugDataSpaces_CheckLowMemory 20 #comfunc global IDebugDataSpaces_ReadDebuggerData 21 int,sptr,int,sptr #comfunc global IDebugDataSpaces_ReadProcessorSystemData 22 int,int,sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。