オブジェクトの場所を定義します。 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 レイヤーで "非不透明" という 2 つの状態があります。
0: オフセットがターゲットの仮想アドレス空間へのポインターであることを示します。
0 以外: 定義された値はホスト専用です。 クライアントはオフセットを伝達および変更できます。 値を法的に変更することはできません。 これは、この構造体が C++ コードからビルドされている場合、IsVirtualAddress() メソッドによって決定できます。
Offset
ホスト コンテキストとこの構造体の HostDefined フィールドによって定義されたアドレス空間への場所のオフセット。 HostDefined フィールドが 0 の場合、これは場所の仮想アドレスです。 HostDefined フィールドが 0 以外の場合、これは他のアドレス空間へのオフセットです。 たとえば、登録済み構造体の特定のフィールドが、包含レジスタ内のどこにあるかを示す場合があります。
コピーによって場所が構築されます。
既定では、同等の 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)
位置関数の減算代入演算子。
Location operator+( LONG64 offset)
位置関数の加算演算子。
Location operator-( LONG64 offset)
位置関数の減算演算子。
GetOffset() を ULONG64 する
位置のオフセットを返します。
場所が仮想アドレスを参照しているかどうかを示します。
必要条件
| 要件 | 価値 |
|---|---|
| ヘッダー | dbgmodel.h |