DEBUG_TYPED_DATA结构描述目标内存中的类型化数据。
语法
typedef struct _DEBUG_TYPED_DATA {
ULONG64 ModBase;
ULONG64 Offset;
ULONG64 EngineHandle;
ULONG64 Data;
ULONG Size;
ULONG Flags;
ULONG TypeId;
ULONG BaseTypeId;
ULONG Tag;
ULONG Register;
ULONG64 Internal[9];
} DEBUG_TYPED_DATA, *PDEBUG_TYPED_DATA;
成员
ModBase
模块的基址,在目标的虚拟地址空间中,包含类型化数据。
Offset
目标内存中类型化数据的位置。 偏移量 是虚拟内存地址,除非 标志 中存在一些标志,这些标志 指定偏移量 是物理内存地址。
EngineHandle
设置为零。
Data
将数据强制转换为ULONG64。 如果 标志 不包含DEBUG_TYPED_DATA_IS_IN_MEMORY标志,则数据不可用,并且 数据 设置为零。
Size
数据的大小(以字节为单位)。
Flags
描述数据所在的目标内存的标志。 可以设置以下位标志。
旗 | 描述 |
---|---|
DEBUG_TYPED_DATA_IS_IN_MEMORY | 数据位于目标的内存中,并且可用。 |
DEBUG_TYPED_DATA_PHYSICAL_DEFAULT | 偏移量 是物理内存地址,Offset 的物理内存使用默认内存缓存。 |
DEBUG_TYPED_DATA_PHYSICAL_CACHED | 偏移量 是物理内存地址,缓存 Offset 的物理内存。 |
DEBUG_TYPED_DATA_PHYSICAL_UNCACHED | 偏移量 是物理内存地址,并且未缓存 偏移量 的物理内存。 |
DEBUG_TYPED_DATA_PHYSICAL_WRITE_COMBINED | 偏移量 是物理内存地址,偏移量 的物理内存是写入组合的。 |
TypeId
数据类型的类型 ID。
BaseTypeId
对于生成的类型,数据类型所基于的类型 ID。 例如,如果类型化数据表示指针(或数组),BaseTypeId 是指向的对象的类型(或保存在数组中)。
对于其他类型,BaseTypeId 与 TypeId相同。
Tag
类型化数据的符号标记。 这是来自 SymTagEnum 枚举的值。 有关值的说明,请参阅 DbgHelp API 文档。
Register
包含数据的处理器寄存器的索引,如果寄存器中不包含数据,则为零。 (请注意,零值可以表示数据不在寄存器中,或者它位于索引为零的寄存器中)。
Internal[9]
内部 调试器引擎 数据。
言论
应使用 DEBUG_REQUEST_EXT_TYPED_DATA_ANSI 请求作来作此结构的实例。 具体而言,应使用此方法创建和释放实例,不应直接更改此结构的成员。
上述规则有一个例外:EXT_TDOP_SET_FROM_TYPE_ID_AND_U64 和 EXT_TDOP_SET_PTR_FROM_TYPE_ID_AND_U64 子作采用DEBUG_TYPED_DATA实例,该实例未使用 Request 方法作。 这些子作采用手动创建的实例,其中某些成员手动填充。
要求
要求 | 价值 |
---|---|
标头 | wdbgexts.h (包括 WdbgExts.h) |