estrutura LDT_ENTRY (winnt.h)
Descreve uma entrada na tabela do descritor. Essa estrutura é válida somente em sistemas baseados em x86.
Sintaxe
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;
Membros
LimitLow
A parte de baixa ordem do endereço do último byte no segmento.
BaseLow
A parte de baixa ordem do endereço base do segmento.
HighWord
A parte de alta ordem do descritor. Esse membro pode ser interpretado como bytes ou coleções de bits, dependendo do nível de detalhe necessário.
HighWord.Bytes
HighWord.Bytes.BaseMid
Bits intermediários (16 a 23) do endereço base do segmento.
HighWord.Bytes.Flags1
Valores dos membros Type, Dpl e Pres na estrutura Bits .
HighWord.Bytes.Flags2
Valores dos membros LimitHi, Sys, Reserved_0, Default_Big e Granularity na estrutura Bits .
HighWord.Bytes.BaseHi
Bits altos (24 a 31) do endereço base do segmento.
HighWord.Bits
HighWord.Bits.BaseMid
Os bits intermediários (16-23) do endereço base do segmento.
HighWord.Bits.Type
O tipo de segmento. Esse membro pode ser um dos seguintes valores:
HighWord.Bits.Dpl
O nível de privilégio do descritor. Esse membro é um valor inteiro no intervalo de 0 (mais privilegiado) a 3 (menos privilegiado).
HighWord.Bits.Pres
O sinalizador atual. Esse membro será 1 se o segmento estiver presente na memória física ou 0 se não estiver.
HighWord.Bits.LimitHi
Os bits altos (16 a 19) do endereço do último byte no segmento.
HighWord.Bits.Sys
O espaço disponível para programadores do sistema. Esse membro pode ser usado para marcar segmentos de alguma forma específica do sistema.
HighWord.Bits.Reserved_0
Reservado.
HighWord.Bits.Default_Big
O tamanho do segmento. Se o segmento for um segmento de dados, esse membro conterá 1 se o segmento for maior que 64 quilobytes (K) ou 0 se o segmento for menor ou igual a 64K.
Se o segmento for um segmento de código, esse membro conterá 1 se o segmento for um segmento de código e for executado com o conjunto de instruções padrão (modo nativo). Esse membro conterá 0 se o segmento de código for um segmento de código 80286 e for executado com deslocamentos de 16 bits e o conjunto de instruções compatível com 80286.
HighWord.Bits.Granularity
A granularidade. Esse membro conterá 0 se o segmento for granular de bytes, 1 se o segmento for granular de página.
HighWord.Bits.BaseHi
Os bits altos (24 a 31) do endereço base do segmento.
Comentários
A função GetThreadSelectorEntry preenche essa estrutura com informações de uma entrada na tabela do descritor. Você pode usar essas informações para converter um endereço relativo ao segmento em um endereço virtual linear.
O endereço base de um segmento é o endereço do deslocamento 0 no segmento. Para calcular esse valor, combine os membros BaseLow, BaseMid e BaseHi .
O limite de um segmento é o endereço do último byte que pode ser abordado no segmento. Para calcular esse valor, combine os membros LimitLow e LimitHi .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | winnt.h (inclua Windows.h) |