Free Shared Memory

Deallocates a shared memory block.

Call With:

AX = 0D01H
SI:DI = handle of shared memory block to free

Returns:

if function successful
Carry flag= clear

if function unsuccessful
Carry flag= set
AX = error code
8023H invalid handle

Notes:

o The shared memory handle becomes invalid after the shared
memory block is deallocated, and should not be used in
any other function call (such as serialization).
o The host maintains virtual machine use counts and a
global use count for each shared memory block. A
virtual machine use count is the number of allocation
calls (Int 31H Fn 0D00H) that have been issued by a
particular virtual machine for the shared block, while
the global use count corresponds to the number of virtual
machines which have access to the block. When a virtual
machine use count reaches zero, the clients in that
virtual machine no longer have addressability to the
shared memory block; when the global use count reaches
zero, the shared memory block is destroyed by the host.
o It is the client's responsibility to free any descriptors
that it has allocated to map the shared memory block.
o Applications should not depend on this function to
release a previous successful serialization for the same
shared memory block. Serialization is only released by
this function when the virtual machine use count goes to
0 (i.e., the client no longer has access to the shared
memory block).