The System physical page is managed by the (page Frame number database) abbreviation PFN, which is actually an array, and each physical page corresponds to a PFN item.
The address space of the process is managed through VAD (Virtual address destriptor). Each process has an AVL tree to hold these VAD nodes to record the addresses and attributes used.
The memory address attribute of a process is divided into reserved and committed, which is the actual allocation of memory when it is used, while the commit requires delivery of the current space, the allocation of physical pages, and then the correlation between the two.
Let's start with the Ntallocatevirtualmemory function.
First, check the correctness of the function parameters, and address the addresses involved, and then calculate the actual required space length.
Next, get the address of the process object and the process object that need to manipulate the AVL tree
Operating System Learning Notes (iii) Windows memory management