DEBUG_TYPED_DATA 结构 (wdbgexts.h)
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
类型化数据在目标内存中的位置。 Offset 是虚拟内存地址,除非标志中存在指定 Offset 为物理内存地址的标志。
EngineHandle
设置为零。
Data
将数据强制转换为ULONG64。 如果 标志 不包含DEBUG_TYPED_DATA_IS_IN_MEMORY标志,则数据不可用, 并且数据 设置为零。
Size
数据的大小(以字节为单位)。
Flags
描述数据所在的目标内存的标志。 可以设置以下位标志。
标志 | 描述 |
---|---|
DEBUG_TYPED_DATA_IS_IN_MEMORY | 数据位于目标的内存中,可用。 |
DEBUG_TYPED_DATA_PHYSICAL_DEFAULT | Offset 是物理内存地址, Offset 处的物理内存使用默认内存缓存。 |
DEBUG_TYPED_DATA_PHYSICAL_CACHED | Offset 是物理内存地址, 偏移处的物理 内存是缓存的。 |
DEBUG_TYPED_DATA_PHYSICAL_UNCACHED | Offset 是物理内存地址, 而 Offset 处的物理内存是未缓存的。 |
DEBUG_TYPED_DATA_PHYSICAL_WRITE_COMBINED | Offset 是物理内存地址, Offset 处的物理内存是写合并的。 |
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 子操作采用不使用 Request 方法操作的DEBUG_TYPED_DATA实例。 这些子操作采用手动创建的实例,其中一些成员是手动填充的。
要求
要求 | 值 |
---|---|
Header | wdbgexts.h (包括 WdbgExts.h) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈