Allocate Shared Memory [1.0]

Allocates a memory block that may be shared by DPMI clients.

Call With

AX = 0D00H
ES:(E)DI = selector:offset of shared memory allocation request structure in the following format:

OffsetLengthContents
00H4Requested length of shared memory block (set by client, may be zero)
04H4Length actually allocated (set by host)
08H4Shared memory handle (set by host)
0CH4Linear address of shared memory block (set by host)
10H6offset32:selector of ASCIIZ (null-terminated ASCII) name for shared memory block (set by client)
16H2Reserved
18H4Reserved, must be zero
Returns

if function successful
Carry flag = clear
and the request structure fields at offsets 04H, 08H, and 0CH updated by host

if function unsuccessful
Carry flag = set
AX = error code
8012Hlinear memory unavailable
8013Hphysical memory unavailable
8014Hbacking store unavailable
8016Hhandle unavailable
8021Hinvalid value (name for the memory block is too long)
and the request structure fields at offsets 04H, 08H and 0CH unmodified by host

Notes