In Windows there are essentially two types of allocations:
- Reserve sets aside a chunk of the process' virtual memory so that it won't be used by other allocations. It does not do anything else. There are no limits to the size, except that it can't overlap other reserved or committed memory virtual memory.
- Commit allocates an area of reserved memory. The system's total amount of committed memory must be less than physical memory plus maximum page file size. However, this memory might not be physically allocated until a page is actually written to.