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

IDebugDataSpaces2

COM
IID7a5e852f-96e9-468f-ac1b-0b3addc4a049継承元IUnknown自前メソッド開始 vtbl3

メソッド 26

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データの格納に必要なバイト数を受け取るポインタである。
vtbl 23 HRESULT VirtualToPhysical(ULONGLONG Virtual, ULONGLONG* Physical)
VirtualULONGLONGin変換する仮想アドレスを指定する。
PhysicalULONGLONG*out変換結果の物理アドレスを受け取るポインタである。
vtbl 24 HRESULT GetVirtualTranslationPhysicalOffsets(ULONGLONG Virtual, ULONGLONG* Offsets, DWORD OffsetsSize, DWORD* Levels)
VirtualULONGLONGin変換過程を取得する仮想アドレスを指定する。
OffsetsULONGLONG*outoptionalアドレス変換の各段階で参照される物理アドレスを受け取る配列へのポインタである。
OffsetsSizeDWORDinOffsets 配列の容量 (要素数) を指定する。
LevelsDWORD*outoptionalアドレス変換の階層数を受け取るポインタである。
vtbl 25 HRESULT ReadHandleData(ULONGLONG Handle, DWORD DataType, void* Buffer, DWORD BufferSize, DWORD* DataSize)
HandleULONGLONGin情報を取得する対象プロセス内のハンドル値を指定する。
DataTypeDWORDin取得するハンドル情報の種類 (DEBUG_HANDLE_DATA_TYPE_*) を指定する。
Buffervoid*outoptional取得した情報を格納するバッファへのポインタである。
BufferSizeDWORDinBuffer のサイズをバイト単位で指定する。
DataSizeDWORD*outoptional情報の格納に必要なバイト数を受け取るポインタである。
vtbl 26 HRESULT FillVirtual(ULONGLONG Start, DWORD Size, void* Pattern, DWORD PatternSize, DWORD* Filled)
StartULONGLONGin書き込みを開始する仮想アドレスを指定する。
SizeDWORDin埋める範囲のバイト数を指定する。
Patternvoid*in繰り返し書き込むバイトパターンを格納したバッファへのポインタである。
PatternSizeDWORDinパターンのサイズをバイト単位で指定する。
FilledDWORD*outoptional実際に埋められたバイト数を受け取るポインタである。
vtbl 27 HRESULT FillPhysical(ULONGLONG Start, DWORD Size, void* Pattern, DWORD PatternSize, DWORD* Filled)
StartULONGLONGin書き込みを開始する物理アドレスを指定する。
SizeDWORDin埋める範囲のバイト数を指定する。
Patternvoid*in繰り返し書き込むバイトパターンを格納したバッファへのポインタである。
PatternSizeDWORDinパターンのサイズをバイト単位で指定する。
FilledDWORD*outoptional実際に埋められたバイト数を受け取るポインタである。
vtbl 28 HRESULT QueryVirtual(ULONGLONG Offset, MEMORY_BASIC_INFORMATION64* Info)
OffsetULONGLONGin情報を照会する仮想アドレスを指定する。
InfoMEMORY_BASIC_INFORMATION64*outメモリ領域の情報を受け取る MEMORY_BASIC_INFORMATION64 構造体へのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IDebugDataSpaces2 "{7A5E852F-96E9-468F-AC1B-0B3ADDC4A049}"
#usecom global IDebugDataSpaces2 IID_IDebugDataSpaces2 "{}"
#comfunc global IDebugDataSpaces2_ReadVirtual                           3 int64,sptr,int,var
#comfunc global IDebugDataSpaces2_WriteVirtual                          4 int64,sptr,int,var
#comfunc global IDebugDataSpaces2_SearchVirtual                         5 int64,int64,sptr,int,int,var
#comfunc global IDebugDataSpaces2_ReadVirtualUncached                   6 int64,sptr,int,var
#comfunc global IDebugDataSpaces2_WriteVirtualUncached                  7 int64,sptr,int,var
#comfunc global IDebugDataSpaces2_ReadPointersVirtual                   8 int,int64,var
#comfunc global IDebugDataSpaces2_WritePointersVirtual                  9 int,int64,var
#comfunc global IDebugDataSpaces2_ReadPhysical                          10 int64,sptr,int,var
#comfunc global IDebugDataSpaces2_WritePhysical                         11 int64,sptr,int,var
#comfunc global IDebugDataSpaces2_ReadControl                           12 int,int64,sptr,int,var
#comfunc global IDebugDataSpaces2_WriteControl                          13 int,int64,sptr,int,var
#comfunc global IDebugDataSpaces2_ReadIo                                14 int,int,int,int64,sptr,int,var
#comfunc global IDebugDataSpaces2_WriteIo                               15 int,int,int,int64,sptr,int,var
#comfunc global IDebugDataSpaces2_ReadMsr                               16 int,var
#comfunc global IDebugDataSpaces2_WriteMsr                              17 int,int64
#comfunc global IDebugDataSpaces2_ReadBusData                           18 int,int,int,int,sptr,int,var
#comfunc global IDebugDataSpaces2_WriteBusData                          19 int,int,int,int,sptr,int,var
#comfunc global IDebugDataSpaces2_CheckLowMemory                        20
#comfunc global IDebugDataSpaces2_ReadDebuggerData                      21 int,sptr,int,var
#comfunc global IDebugDataSpaces2_ReadProcessorSystemData               22 int,int,sptr,int,var
#comfunc global IDebugDataSpaces2_VirtualToPhysical                     23 int64,var
#comfunc global IDebugDataSpaces2_GetVirtualTranslationPhysicalOffsets  24 int64,var,int,var
#comfunc global IDebugDataSpaces2_ReadHandleData                        25 int64,int,sptr,int,var
#comfunc global IDebugDataSpaces2_FillVirtual                           26 int64,int,sptr,int,var
#comfunc global IDebugDataSpaces2_FillPhysical                          27 int64,int,sptr,int,var
#comfunc global IDebugDataSpaces2_QueryVirtual                          28 int64,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。