Note that a `Y' for a given entry does not indicate that the function will succeed, only that it will not generate an "Invalid Selector" error. Similarly, an `N' does not necessarily indicate a descriptor is invalid for referencing memory, only that it cannot be used with that particular function. This chart does not address the usage of descriptors in pointers.
For example, descriptors allocated by the Allocate LDT Descriptor function may be used in any of the interrogation and modification functions of LDT Descriptor Management, as well as the functions which set exception handlers and interrupt vectors. They may not be passed to Allocate Specific LDT Descriptor or the DOS Memory Block Functions.
|Functions referring to allocated descriptors||Allocate LDT Descriptor, Allocate Specfic LDT Descriptor, Create Alias descriptr, Initial CS, DS, SS||Segment to Descriptor, PSP, Environment Pointer, Callback DS, Locked Stack SS||Allocate/Resize DOS Memory Block||GDT-based Descriptor, System Descriptor, Unallocated Descriptor|
|Interrogation Functions: Get Segment Base Address, Get Descriptor, Get Multiple Descriptor, Create Segment Alias||Y||Y||Y||N|
|Modification Functions: Set Segment Base Address, Set Segment Limit, Set Descriptor Access Rights, Set Descriptor, Set Multiple Descriptors, Free LDT Descriptor||Y||N||N||N|
|Allocate Specific LDT Descriptor||N||N||N||Y(1)|
|Free/Resize DOS Memory Block||N||N||Y||N|
|Set Exception Handler/Interrupt Vector||Y||Y(3)||Y||Y(2)|
|webmaster||delorie software privacy|
|Copyright © 1996 by DJ Delorie||Updated Apr 1996|