Bagikan melalui


struktur LDT_ENTRY (winnt.h)

Menjelaskan entri dalam tabel deskriptor. Struktur ini hanya berlaku pada sistem berbasis x86.

Sintaks

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;

Anggota

LimitLow

Bagian urutan rendah dari alamat byte terakhir di segmen.

BaseLow

Bagian urutan rendah dari alamat dasar segmen.

HighWord

Bagian deskriptor urutan tinggi. Anggota ini dapat ditafsirkan sebagai byte atau koleksi bit, tergantung pada tingkat detail yang diperlukan.

HighWord.Bytes

HighWord.Bytes.BaseMid

Bit tengah (16–23) dari alamat dasar segmen.

HighWord.Bytes.Flags1

Nilai anggota Jenis, Dpl, dan Pres dalam struktur Bit .

HighWord.Bytes.Flags2

Nilai anggota LimitHi, Sys, Reserved_0, Default_Big, dan Granularity dalam struktur Bit .

HighWord.Bytes.BaseHi

Bit tinggi (24–31) dari alamat dasar segmen.

HighWord.Bits

HighWord.Bits.BaseMid

Bit tengah (16–23) dari alamat dasar segmen.

HighWord.Bits.Type

Jenis segmen. Anggota ini bisa menjadi salah satu nilai berikut:

HighWord.Bits.Dpl

Tingkat hak istimewa deskriptor. Anggota ini adalah nilai bilangan bulat dalam rentang 0 (paling istimewa) hingga 3 (paling tidak istimewa).

HighWord.Bits.Pres

Bendera saat ini. Anggota ini adalah 1 jika segmen ada dalam memori fisik atau 0 jika tidak.

HighWord.Bits.LimitHi

Bit tinggi (16–19) dari alamat byte terakhir di segmen.

HighWord.Bits.Sys

Ruang yang tersedia untuk programmer sistem. Anggota ini mungkin digunakan untuk menandai segmen dengan beberapa cara khusus sistem.

HighWord.Bits.Reserved_0

Dicadangkan.

HighWord.Bits.Default_Big

Ukuran segmen. Jika segmen adalah segmen data, anggota ini berisi 1 jika segmen lebih besar dari 64 kilobyte (K) atau 0 jika segmen lebih kecil dari atau sama dengan 64K.

Jika segmen adalah segmen kode, anggota ini berisi 1 jika segmen adalah segmen kode dan berjalan dengan set instruksi default (mode asli). Anggota ini berisi 0 jika segmen kode adalah segmen kode 80286 dan berjalan dengan offset 16-bit dan set instruksi yang kompatibel dengan 80286.

HighWord.Bits.Granularity

Granularitas. Anggota ini berisi 0 jika segmen adalah byte granular, 1 jika segmen adalah granular halaman.

HighWord.Bits.BaseHi

Bit tinggi (24–31) dari alamat dasar segmen.

Keterangan

Fungsi GetThreadSelectorEntry mengisi struktur ini dengan informasi dari entri dalam tabel deskriptor. Anda dapat menggunakan informasi ini untuk mengonversi alamat relatif segmen ke alamat virtual linier.

Alamat dasar segmen adalah alamat offset 0 di segmen. Untuk menghitung nilai ini, gabungkan anggota BaseLow, BaseMid, dan BaseHi .

Batas segmen adalah alamat byte terakhir yang dapat ditangani di segmen. Untuk menghitung nilai ini, gabungkan anggota LimitLow dan LimitHi .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header winnt.h (sertakan Windows.h)

Lihat juga

Struktur Penelusuran Kesalahan

GetThreadSelectorEntry