定义对象的位置。 Location 的特殊变体是 C-COM 访问结构。
请注意,某个位置仅与主机上下文一起具有意义。 它是上下文中的一个位置。 对位置(读取字节、写入字节等)执行作时,必须提供有效的主机上下文。
语法
struct Location {
ULONG64 HostDefined;
ULONG64 Offset;
void Location();
void Location(
ULONG64 virtualAddress
);
void Location(
const Location & src
);
Location & operator=(
const Location & src
);
Location & operator=(
ULONG64 virtualAddress
);
bool operator==(
const Location & rhs
);
bool operator!=(
const Location & rhs
);
Location & operator+=(
LONG64 offset
);
Location & operator-=(
LONG64 offset
);
Location operator+(
LONG64 offset
);
Location operator-(
LONG64 offset
);
ULONG64 GetOffset();
bool IsVirtualAddress();
};
成员
HostDefined
HostDefined 字段在 API 层有两种状态“非不透明”。
0:指示偏移量是指向目标的虚拟地址空间的指针。
非零:定义的值是主机的专有值。 客户端可以传播和更改偏移量。 它们无法合法地更改该值。 如果此结构是从C++代码生成的,则可以由 IsVirtualAddress() 方法确定。
Offset
由主机上下文和此结构的 HostDefined 字段定义的地址空间中的位置偏移量。 如果 HostDefined 字段为零,则为位置的虚拟地址。 如果 HostDefined 字段为非零,则这是一些其他地址空间的偏移量。 例如,它可能指示已注册结构的特定字段位于包含寄存器内的位置。
复制构造位置。
默认构造等效的 nullptr。
void Location(ULONG64 virtualAddress)
从偏移量构造目标虚拟地址空间中的位置。
void Location(const Location & src)
复制构造位置。
Location & operator=(const Location & src)
位置函数的复制赋值运算符。
Location & operator=(ULONG64 virtualAddress)
位置函数的赋值运算符。
bool operator==(const Location & rhs)
位置函数的等价运算符。
bool 运算符!=(const Location & rhs)
不等于位置函数的比较运算符。
Location & operator+=(LONG64 offset)
位置函数的加法赋值运算符。
Location & operator-=(LONG64 offset)
位置函数的减法赋值运算符。
位置函数的加法运算符。
位置函数的减法运算符。
返回位置的偏移量。
指示位置是否引用虚拟地址。
要求
| 要求 | 价值 |
|---|---|
| 标头 | dbgmodel.h |