DOS/32 Advanced DOS Extender - Programmer's Reference 2.13 - DPMI function 000Fh - Set Multiple Descriptors Copies one or more descriptors from a client buffer into the descriptor table.
In: | AX = 000Fh CX = number of descriptors to copy ES:EDI= selector:offset of a buffer in the following format:
Offset | Length | Contents
00h | 2 | Selector #1 (set by client)
02h | 8 | Descriptor #1 (returned by host)
0Ah | 2 | Selector #2 (set by client)
0Ch | 8 | Descriptor #2 (returned by host)
. . . | . . . | . . .
Out: | if successful: CF clear if failed: CF set AX = error code CX = number of descriptors successfully copied 8021h - invalid value (access rights/type bytes invalid) 8022h - invalid selector 8025h - invalid linear address (descriptor references a linear address range outside that allowed for DPMI clients)
Notes: a) If an error occurs because of an invalid selector or descriptor, the function returns the number of descriptors which were successfully copied in CX. All of the descriptors which were copied prior to the one that failed are valid. All descriptors from the invalid entry to the end of the table are not updated. b) The descriptor's access rights/type byte (byte 5) follows the same format and restrictions as the access rights/type parameter (in CL) for the Set Descriptor Access Rights DPMI function 0009h, and the descriptor's extended access rights/type byte (byte 6) follows the same format and restrictions as the extended access rights/type parameter (in CH) for the same function, except the low-order 4 bits (marked "reserved") are used to set the upper 4 bits of the descriptor's limit. c) DOS/32 Advanced DPMI and DPMI 1.0 hosts will reload any segment registers which contain the selector specified in register BX. Copyright © DOS/32 Advanced Team 1996-2002 All Rights Reserved