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 構造体の TypeDplPres メンバーの値。

HighWord.Bytes.Flags2

Bits 構造体の LimitHiSysReserved_0Default_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 のアドレスです。 この値を計算するには、 BaseLowBaseMidBaseHi の各メンバーを結合します。

セグメントの制限は、セグメント内でアドレス指定できる最後のバイトのアドレスです。 この値を計算するには、 LimitLow メンバーと LimitHi メンバーを組み合わせます。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header winnt.h (Windows.h を含む)

関連項目

デバッグ構造体

GetThreadSelectorEntry