LDT_ENTRY構造体 (winnt.h)
記述子テーブルのエントリについて説明します。 この構造体は、x86 ベースのシステムでのみ有効です。
構文
typedef struct _LDT_ENTRY {
WORD LimitLow;
WORD BaseLow;
union {
struct {
BYTE BaseMid;
BYTE Flags1;
BYTE Flags2;
BYTE BaseHi;
} Bytes;
struct {
DWORD BaseMid : 8;
DWORD Type : 5;
DWORD Dpl : 2;
DWORD Pres : 1;
DWORD LimitHi : 4;
DWORD Sys : 1;
DWORD Reserved_0 : 1;
DWORD Default_Big : 1;
DWORD Granularity : 1;
DWORD BaseHi : 8;
} Bits;
} HighWord;
} LDT_ENTRY, *PLDT_ENTRY;
メンバー
LimitLow
セグメント内の最後のバイトのアドレスの下位部分。
BaseLow
セグメントのベース アドレスの下位部分。
HighWord
記述子の高次部分。 このメンバーは、必要な詳細レベルに応じて、バイトまたはビットのコレクションとして解釈される場合があります。
HighWord.Bytes
HighWord.Bytes.BaseMid
セグメントのベース アドレスの中間ビット (16 ~ 23)。
HighWord.Bytes.Flags1
Bits 構造体の Type、Dpl、Pres メンバーの値。
HighWord.Bytes.Flags2
Bits 構造体の LimitHi、Sys、Reserved_0、Default_Big、および粒度の各メンバーの値。
HighWord.Bytes.BaseHi
セグメントのベース アドレスの上位ビット (24 ~ 31)。
HighWord.Bits
HighWord.Bits.BaseMid
セグメントのベース アドレスの中間ビット (16 ~ 23)。
HighWord.Bits.Type
セグメントの種類。 このメンバーには、次のいずれかの値を指定できます。
HighWord.Bits.Dpl
記述子の特権レベル。 このメンバーは、0 (最も特権が高い) ~ 3 (最小特権) の範囲内の整数値です。
HighWord.Bits.Pres
現在のフラグ。 セグメントが物理メモリに存在する場合、このメンバーは 1、そうでない場合は 0 です。
HighWord.Bits.LimitHi
セグメント内の最後のバイトのアドレスの上位ビット (16 から 19)。
HighWord.Bits.Sys
システム プログラマが使用できる領域。 このメンバーは、システム固有の方法でセグメントをマークするために使用される場合があります。
HighWord.Bits.Reserved_0
予約済み。
HighWord.Bits.Default_Big
セグメントのサイズ。 セグメントがデータ セグメントの場合、セグメントが 64 キロバイト (K) より大きい場合は 1、セグメントが 64K 以下の場合は 0 が含まれます。
セグメントがコード セグメントの場合、セグメントがコード セグメントであり、既定の (ネイティブ モード) 命令セットで実行される場合、このメンバーには 1 が含まれます。 コード セグメントが 80286 コード セグメントであり、16 ビット オフセットと 80286 互換命令セットで実行される場合、このメンバーには 0 が含まれます。
HighWord.Bits.Granularity
細分性。 このメンバーには、セグメントがバイト細かい場合は 0、セグメントがページ細かい場合は 1 が含まれます。
HighWord.Bits.BaseHi
セグメントのベース アドレスの上位ビット (24 ~ 31)。
注釈
GetThreadSelectorEntry 関数は、この構造体に記述子テーブルのエントリからの情報を入力します。 この情報を使用して、セグメント相対アドレスを線形仮想アドレスに変換できます。
セグメントのベース アドレスは、セグメント内のオフセット 0 のアドレスです。 この値を計算するには、 BaseLow、 BaseMid、 BaseHi の各メンバーを結合します。
セグメントの制限は、セグメント内でアドレス指定できる最後のバイトのアドレスです。 この値を計算するには、 LimitLow メンバーと LimitHi メンバーを組み合わせます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | winnt.h (Windows.h を含む) |