include vmm.inc VMMcall _BuildDescriptorDWORDs, <DESCBase, DESCLimit, DESCType, DESCSize, flags> mov [DescDWORD1], edx ; high doubleword of descriptor mov [DescDWORD2], eax ; low doubleword of descriptor |
The _BuildDescriptorDWORDs service builds the descriptor parameter used in calls to the _Allocate_GDT_Selector and Allocate_LDT_Selector services.
DESCBase
Specifies the 32-bit base address for the descriptor.
DESCLimit
Specifies the 20-bit limit for the descriptor.
DESCType
Specifies the present bit, DPL, and type fields for the descriptor (bits 8–15 of the high doubleword). Only the low 8 bits of the parameter are valid; all other bits must be zero.
DESCSize
Specifies the granularity and big/default fields for the descriptor (bits 20–23 of the high doubleword). Only bits the high four bits (4–7) of the DESCSize parameter are valid; all other bits must be zero.
flags
Specifies the operation flags. This parameter can be the following value:
Value | Meaning |
BDDExplicitDPL | Uses the DPL bits in the DESCType parameters. If this value is not given, the service sets the DPL bits to be equal to the RPL bits for protected-mode applications. |
All other values are reserved.
The EAX register contains the low doubleword of the descriptor, and the EDX register contains the high doubleword of the descriptor.
Virtual devices must not rely on the privilege level at which protected-mode applications run. When creating selectors for protected-mode applications, a virtual device should specify the BDDExplicitDPL value. This provides a convenient way to build descriptors without knowing the protection level for protected-mode applications.
EAX, EDX