Map a MemoryObject into an AddressSpace.
a- a handle to the MemoryObject.
b- a handle to the AddressSpace. The zero handle indicates to map the memory object into the task's AddressSpace.
c- the virtual address to map the MemoryObject at, if it does not need to be mapped at a specific address. Should be null if the MemoryObject supplies the address.
d- a pointer to which the kernel will write the virtual address at which the MemoryObject was mapped. Ignored if null.
0if the system call succeeded
1if either of the passed handles are invalid
2if the portion of the AddressSpace that would be mapped is already occupied by another MemoryObject
3if the supplied MemoryObject handle does not point to a MemoryHandle
4if the supplied AddressSpace handle does not point to an AddressSpace
5if the pointer to write the virtual address back to is invalid
6if a virtual address to map at was supplied, but the MemoryObject needs to be mapped at a specific address.
7if a virtual address was not supplied, but the MemoryObject does not specify the address to map it at.
None (this may change in the future).