Структура расположения (dbgmodel.h)

Определяет расположение объекта. Этот конкретный вариант расположения — это структуру доступа 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. Указывает, что смещение является указателем на виртуальное адресное пространство целевого объекта.

Ненулевая: определенное значение является владельцем узла. Клиенты могут распространять и изменять смещение. Они не могут юридически изменить значение. Это можно определить методом IsVirtualAddress(), если эта структура построена из кода C++.

Offset

Смещение расположения в адресное пространство, определенное контекстом узла и полем HostDefined этой структуры. Если поле HostDefined равно нулю, это виртуальный адрес расположения. Если поле HostDefined не равно нулю, это смещение в другое адресное пространство. Например, может указывать, где находится определенное поле зарегистрированной структуры в пределах содержащего регистра.

void Location()

Копирование создает расположение.

По умолчанию создается эквивалентный nullptr.

void Location(ULONG64 virtualAddress)

Создает расположение из смещения в виртуальное адресное пространство целевого объекта.

void Location(const Location & src)

Копирование создает расположение.

Location & operator=( const Location & src)

Оператор назначения копирования для функции расположения.

оператор & location =( ULONG64 virtualAddress)

Оператор назначения для функции расположения.

bool operator=(const Location & rhs)

Оператор эквивалентности для функции расположения.

оператор bool!=( const Location & rhs)

Не равно оператору сравнения для функции расположения.

оператор location &+=( смещение LONG64)

Оператор назначения добавления для функции расположения.

location & operator-=(смещение LONG64)

Оператор назначения вычитания для функции расположения.

оператор location+(long64 offset)

Оператор добавления для функции расположения.

оператора location (смещение LONG64)

Оператор вычитания для функции расположения.

ULONG64 GetOffset()

Возвращает смещение расположения.

bool IsVirtualAddress()

Указывает, относится ли расположение к виртуальному адресу.

Требования

Требование Ценность
заголовка dbgmodel.h

См. также

Обзор модели данных отладчика C++