This function is for internal use only.
Both maps must exist. The range must have been created with vm_map_find(9) previously.
No other operations may have been performed on this range before calling this function. Only the vm_fault operation may be performed within this range after calling this function.
To remove a submapping, one must first remove the range from the parent map, and then destroy the sub_map. This procedure is not recommended.
The vm_map_submap function returns KERN_SUCCESS if successful.
Otherwise, it returns KERN_INVALID_ARGUMENT if the caller requested copy-on-write flags, or if the range specified for the sub-map was out of range for the parent map, or if a NULL backing object was specified.