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 是指向 (或保存在数组) 的对象的类型。

对于其他类型, BaseTypeIdTypeId 相同。

Tag

类型化数据的符号标记。 这是 SymTagEnum 枚举中的值。 有关值的说明,请参阅 DbgHelp API 文档。

Register

包含数据的处理器寄存器的索引;如果寄存器中不包含数据,则为零。 (请注意,零值可以表示数据不在寄存器中,或者数据位于索引为零的寄存器中。)

Internal[9]

内部 调试器引擎 数据。

注解

应使用 “DEBUG_REQUEST_EXT_TYPED_DATA_ANSI 请求” 操作来操作此结构的实例。 具体而言,应使用此方法创建和释放实例,并且不应直接更改此结构的成员。

上述规则有一个例外: EXT_TDOP_SET_FROM_TYPE_ID_AND_U64EXT_TDOP_SET_PTR_FROM_TYPE_ID_AND_U64 子操作采用不使用 Request 方法操作的DEBUG_TYPED_DATA实例。 这些子操作采用手动创建的实例,其中一些成员是手动填充的。

注意 在包括 DbgEng.h 之前包括 WdbgExts.h。 此外, SymTagEnum 在 DbgHelp.h 中定义, (包括 DbgHelp.h) 。
 

要求

要求
Header wdbgexts.h (包括 WdbgExts.h)

另请参阅

DEBUG_REQUEST_EXT_TYPED_DATA_ANSI

请求