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

IDebugDataSpaces3

COM
IID23f79d6c-8aaf-4f7c-a607-9995f5407e63継承元IUnknown自前メソッド開始 vtbl3

メソッド 31

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)
InterfaceTypeDWORDinI/O アドレスの解釈に用いるインターフェイス(バス)の種類を指定する。
BusNumberDWORDin対象とするバスの番号を指定する。
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)
InterfaceTypeDWORDinI/O アドレスの解釈に用いるインターフェイス(バス)の種類を指定する。
BusNumberDWORDin対象とするバスの番号を指定する。
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読み取ったデータを受け取るバッファへのポインタである。
BufferSizeDWORDinバッファのサイズ(バイト単位)を指定する。
DataSizeDWORD*outoptional利用可能なデータの総バイト数を受け取るポインタである。
vtbl 22 HRESULT ReadProcessorSystemData(DWORD Processor, DWORD Index, void* Buffer, DWORD BufferSize, DWORD* DataSize)
ProcessorDWORDin対象プロセッサのインデックスを指定する。
IndexDWORDin取得するプロセッサシステムデータ項目を示すインデックスを指定する。
Buffervoid*out読み取ったデータを受け取るバッファへのポインタである。
BufferSizeDWORDinバッファのサイズ(バイト単位)を指定する。
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取得するハンドルデータの種類を指定する。
Buffervoid*outoptional読み取ったデータを受け取るバッファへのポインタである。
BufferSizeDWORDinバッファのサイズ(バイト単位)を指定する。
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 構造体へのポインタである。
vtbl 29 HRESULT ReadImageNtHeaders(ULONGLONG ImageBase, IMAGE_NT_HEADERS64* Headers)
ImageBaseULONGLONGin対象イメージのベースアドレスを指定する。
HeadersIMAGE_NT_HEADERS64*out読み取った IMAGE_NT_HEADERS64 構造体を受け取るポインタである。
vtbl 30 HRESULT ReadTagged(GUID* Tag, DWORD Offset, void* Buffer, DWORD BufferSize, DWORD* TotalSize)
TagGUID*in取得するタグ付きデータを識別する GUID へのポインタである。
OffsetDWORDinタグ付きデータ内の読み取り開始オフセット(バイト単位)を指定する。
Buffervoid*outoptional読み取ったデータを受け取るバッファへのポインタである。
BufferSizeDWORDinバッファのサイズ(バイト単位)を指定する。
TotalSizeDWORD*outoptionalタグ付きデータの総バイト数を受け取るポインタである。
vtbl 31 HRESULT StartEnumTagged(ULONGLONG* Handle)
HandleULONGLONG*out列挙に用いるハンドルを受け取るポインタである。
vtbl 32 HRESULT GetNextTagged(ULONGLONG Handle, GUID* Tag, DWORD* Size)
HandleULONGLONGinStartEnumTagged で取得した列挙ハンドルを指定する。
TagGUID*out次のタグ付きデータの GUID を受け取るポインタである。
SizeDWORD*out次のタグ付きデータのサイズ(バイト単位)を受け取るポインタである。
vtbl 33 HRESULT EndEnumTagged(ULONGLONG Handle)
HandleULONGLONGin終了する列挙のハンドルを指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IDebugDataSpaces3 "{23F79D6C-8AAF-4F7C-A607-9995F5407E63}"
#usecom global IDebugDataSpaces3 IID_IDebugDataSpaces3 "{}"
#comfunc global IDebugDataSpaces3_ReadVirtual                           3 int64,sptr,int,var
#comfunc global IDebugDataSpaces3_WriteVirtual                          4 int64,sptr,int,var
#comfunc global IDebugDataSpaces3_SearchVirtual                         5 int64,int64,sptr,int,int,var
#comfunc global IDebugDataSpaces3_ReadVirtualUncached                   6 int64,sptr,int,var
#comfunc global IDebugDataSpaces3_WriteVirtualUncached                  7 int64,sptr,int,var
#comfunc global IDebugDataSpaces3_ReadPointersVirtual                   8 int,int64,var
#comfunc global IDebugDataSpaces3_WritePointersVirtual                  9 int,int64,var
#comfunc global IDebugDataSpaces3_ReadPhysical                          10 int64,sptr,int,var
#comfunc global IDebugDataSpaces3_WritePhysical                         11 int64,sptr,int,var
#comfunc global IDebugDataSpaces3_ReadControl                           12 int,int64,sptr,int,var
#comfunc global IDebugDataSpaces3_WriteControl                          13 int,int64,sptr,int,var
#comfunc global IDebugDataSpaces3_ReadIo                                14 int,int,int,int64,sptr,int,var
#comfunc global IDebugDataSpaces3_WriteIo                               15 int,int,int,int64,sptr,int,var
#comfunc global IDebugDataSpaces3_ReadMsr                               16 int,var
#comfunc global IDebugDataSpaces3_WriteMsr                              17 int,int64
#comfunc global IDebugDataSpaces3_ReadBusData                           18 int,int,int,int,sptr,int,var
#comfunc global IDebugDataSpaces3_WriteBusData                          19 int,int,int,int,sptr,int,var
#comfunc global IDebugDataSpaces3_CheckLowMemory                        20
#comfunc global IDebugDataSpaces3_ReadDebuggerData                      21 int,sptr,int,var
#comfunc global IDebugDataSpaces3_ReadProcessorSystemData               22 int,int,sptr,int,var
#comfunc global IDebugDataSpaces3_VirtualToPhysical                     23 int64,var
#comfunc global IDebugDataSpaces3_GetVirtualTranslationPhysicalOffsets  24 int64,var,int,var
#comfunc global IDebugDataSpaces3_ReadHandleData                        25 int64,int,sptr,int,var
#comfunc global IDebugDataSpaces3_FillVirtual                           26 int64,int,sptr,int,var
#comfunc global IDebugDataSpaces3_FillPhysical                          27 int64,int,sptr,int,var
#comfunc global IDebugDataSpaces3_QueryVirtual                          28 int64,var
#comfunc global IDebugDataSpaces3_ReadImageNtHeaders                    29 int64,var
#comfunc global IDebugDataSpaces3_ReadTagged                            30 var,int,sptr,int,var
#comfunc global IDebugDataSpaces3_StartEnumTagged                       31 var
#comfunc global IDebugDataSpaces3_GetNextTagged                         32 int64,var,var
#comfunc global IDebugDataSpaces3_EndEnumTagged                         33 int64
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。