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

IDebugDataSpaces

COM
IID88f7dfab-3ea7-4c3a-aefb-c4e8106173aa継承元IUnknown自前メソッド開始 vtbl3

メソッド 20

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

vtbl 3 HRESULT ReadVirtual(ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesRead)
OffsetULONGLONGin読み取りを開始する仮想アドレスを指定する。
Buffervoid*out読み取ったデータを格納するバッファへのポインタである。
BufferSizeDWORDin読み取るバイト数を指定する。
BytesReadDWORD*outoptional実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 4 HRESULT WriteVirtual(ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
OffsetULONGLONGin書き込みを開始する仮想アドレスを指定する。
Buffervoid*in書き込むデータを格納したバッファへのポインタである。
BufferSizeDWORDin書き込むバイト数を指定する。
BytesWrittenDWORD*outoptional実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 5 HRESULT SearchVirtual(ULONGLONG Offset, ULONGLONG Length, void* Pattern, DWORD PatternSize, DWORD PatternGranularity, ULONGLONG* MatchOffset)
OffsetULONGLONGin検索を開始する仮想アドレスを指定する。
LengthULONGLONGin検索する範囲のバイト数を指定する。
Patternvoid*in検索するバイトパターンを格納したバッファへのポインタである。
PatternSizeDWORDinパターンのサイズをバイト単位で指定する。
PatternGranularityDWORDinパターンを照合する境界の粒度をバイト単位で指定する。
MatchOffsetULONGLONG*out見つかった位置の仮想アドレスを受け取るポインタである。
vtbl 6 HRESULT ReadVirtualUncached(ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesRead)
OffsetULONGLONGin読み取りを開始する仮想アドレスを指定する。
Buffervoid*out読み取ったデータを格納するバッファへのポインタである。
BufferSizeDWORDin読み取るバイト数を指定する。
BytesReadDWORD*outoptional実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 7 HRESULT WriteVirtualUncached(ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
OffsetULONGLONGin書き込みを開始する仮想アドレスを指定する。
Buffervoid*in書き込むデータを格納したバッファへのポインタである。
BufferSizeDWORDin書き込むバイト数を指定する。
BytesWrittenDWORD*outoptional実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 8 HRESULT ReadPointersVirtual(DWORD Count, ULONGLONG Offset, ULONGLONG* Ptrs)
CountDWORDin読み取るポインタの数を指定する。
OffsetULONGLONGin読み取りを開始する仮想アドレスを指定する。
PtrsULONGLONG*out読み取ったポインタ値を格納する配列へのポインタである。対象のポインタ幅に応じて符号拡張される。
vtbl 9 HRESULT WritePointersVirtual(DWORD Count, ULONGLONG Offset, ULONGLONG* Ptrs)
CountDWORDin書き込むポインタの数を指定する。
OffsetULONGLONGin書き込みを開始する仮想アドレスを指定する。
PtrsULONGLONG*in書き込むポインタ値を格納した配列へのポインタである。対象のポインタ幅に切り詰められる。
vtbl 10 HRESULT ReadPhysical(ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesRead)
OffsetULONGLONGin読み取りを開始する物理アドレスを指定する。
Buffervoid*out読み取ったデータを格納するバッファへのポインタである。
BufferSizeDWORDin読み取るバイト数を指定する。
BytesReadDWORD*outoptional実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 11 HRESULT WritePhysical(ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
OffsetULONGLONGin書き込みを開始する物理アドレスを指定する。
Buffervoid*in書き込むデータを格納したバッファへのポインタである。
BufferSizeDWORDin書き込むバイト数を指定する。
BytesWrittenDWORD*outoptional実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 12 HRESULT ReadControl(DWORD Processor, ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesRead)
ProcessorDWORDin対象とするプロセッサの番号を指定する。
OffsetULONGLONGin読み取りを開始する制御空間内のオフセットを指定する。
Buffervoid*out読み取ったデータを格納するバッファへのポインタである。
BufferSizeDWORDin読み取るバイト数を指定する。
BytesReadDWORD*outoptional実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 13 HRESULT WriteControl(DWORD Processor, ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
ProcessorDWORDin対象とするプロセッサの番号を指定する。
OffsetULONGLONGin書き込みを開始する制御空間内のオフセットを指定する。
Buffervoid*in書き込むデータを格納したバッファへのポインタである。
BufferSizeDWORDin書き込むバイト数を指定する。
BytesWrittenDWORD*outoptional実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 14 HRESULT ReadIo(DWORD InterfaceType, DWORD BusNumber, DWORD AddressSpace, ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesRead)
InterfaceTypeDWORDin対象 I/O バスのインターフェイス種別を指定する。
BusNumberDWORDin対象 I/O バスの番号を指定する。
AddressSpaceDWORDin対象とするアドレス空間を指定する。
OffsetULONGLONGin読み取りを開始する I/O アドレスを指定する。
Buffervoid*out読み取ったデータを格納するバッファへのポインタである。
BufferSizeDWORDin読み取るバイト数を指定する。
BytesReadDWORD*outoptional実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 15 HRESULT WriteIo(DWORD InterfaceType, DWORD BusNumber, DWORD AddressSpace, ULONGLONG Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
InterfaceTypeDWORDin対象 I/O バスのインターフェイス種別を指定する。
BusNumberDWORDin対象 I/O バスの番号を指定する。
AddressSpaceDWORDin対象とするアドレス空間を指定する。
OffsetULONGLONGin書き込みを開始する I/O アドレスを指定する。
Buffervoid*in書き込むデータを格納したバッファへのポインタである。
BufferSizeDWORDin書き込むバイト数を指定する。
BytesWrittenDWORD*outoptional実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 16 HRESULT ReadMsr(DWORD Msr, ULONGLONG* Value)
MsrDWORDin読み取るモデル固有レジスタ (MSR) の番号を指定する。
ValueULONGLONG*out読み取った MSR の値を受け取るポインタである。
vtbl 17 HRESULT WriteMsr(DWORD Msr, ULONGLONG Value)
MsrDWORDin書き込むモデル固有レジスタ (MSR) の番号を指定する。
ValueULONGLONGinMSR に書き込む値を指定する。
vtbl 18 HRESULT ReadBusData(DWORD BusDataType, DWORD BusNumber, DWORD SlotNumber, DWORD Offset, void* Buffer, DWORD BufferSize, DWORD* BytesRead)
BusDataTypeDWORDin対象バスのデータ種別を指定する。
BusNumberDWORDin対象バスの番号を指定する。
SlotNumberDWORDin対象スロットの番号を指定する。
OffsetDWORDin読み取りを開始するバスデータ内のオフセットを指定する。
Buffervoid*out読み取ったデータを格納するバッファへのポインタである。
BufferSizeDWORDin読み取るバイト数を指定する。
BytesReadDWORD*outoptional実際に読み取られたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 19 HRESULT WriteBusData(DWORD BusDataType, DWORD BusNumber, DWORD SlotNumber, DWORD Offset, void* Buffer, DWORD BufferSize, DWORD* BytesWritten)
BusDataTypeDWORDin対象バスのデータ種別を指定する。
BusNumberDWORDin対象バスの番号を指定する。
SlotNumberDWORDin対象スロットの番号を指定する。
OffsetDWORDin書き込みを開始するバスデータ内のオフセットを指定する。
Buffervoid*in書き込むデータを格納したバッファへのポインタである。
BufferSizeDWORDin書き込むバイト数を指定する。
BytesWrittenDWORD*outoptional実際に書き込まれたバイト数を受け取るポインタである。不要なら NULL を指定する。
vtbl 20 HRESULT CheckLowMemory()
vtbl 21 HRESULT ReadDebuggerData(DWORD Index, void* Buffer, DWORD BufferSize, DWORD* DataSize)
IndexDWORDin取得するデバッガデータブロックの項目インデックスを指定する。
Buffervoid*out取得したデータを格納するバッファへのポインタである。
BufferSizeDWORDinBuffer のサイズをバイト単位で指定する。
DataSizeDWORD*outoptionalデータの格納に必要なバイト数を受け取るポインタである。
vtbl 22 HRESULT ReadProcessorSystemData(DWORD Processor, DWORD Index, void* Buffer, DWORD BufferSize, DWORD* DataSize)
ProcessorDWORDin対象とするプロセッサの番号を指定する。
IndexDWORDin取得するプロセッサシステムデータの種類を指定する。
Buffervoid*out取得したデータを格納するバッファへのポインタである。
BufferSizeDWORDinBuffer のサイズをバイト単位で指定する。
DataSizeDWORD*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 指定が可能。