#include <vmm.h>
typedef ULONG _cdecl FUNPAGE(PULONG ppagerdata, PVOID ppage,
    ULONG faultpage);
typedef FUNPAGE *PFUNPAGE;
typedef struct pd_s {
    PFUNPAGE pd_virginin;
    PFUNPAGE pd_taintedin;
    PFUNPAGE pd_cleanout;
    PFUNPAGE pd_dirtyout;
    PFUNPAGE pd_virginfree;
    PFUNPAGE pd_taintedfree;
    PFUNPAGE pd_dirty;
    ULONG pd_type;
} PD, *PPD;
 Pager-descriptor structure. Contains pointers to a pager's callback functions, and information about the overcommit characteristics of the pages the pager manages.
These functions must return a nonzero value if successful, or zero otherwise. The parameters have the following meanings:
| ppagerdata | Address of a pager-defined 32-bit value stored with the virtual page. The pager can modify this value during page in and out operations, but not at other times. | 
| ppage | Ring-zero physical address of the page. | 
| faultpage | Linear page number that triggered a page fault. A pager should not attempt to access this page number. Note that the same page can be mapped to more than one linear address. | 
These functions must return a nonzero value if successful, or zero otherwise. The parameters have the following meanings:
| ppagerdata | Address of a pager-defined 32-bit value stored with the virtual page. The pager can modify this value during page in and out operations, but not at other times. | 
| ppage | Ring-zero physical address of the page. | 
| faultpage | Always – 1. | 
The return value of these functions is ignored. The parameters have the following meanings:
| ppagerdata | Address of a pager-defined 32-bit value stored with the virtual page. The pager can modify this value during page in and out operations, but not at other times. | 
| ppage | Ring-zero physical address of the page if it is in memory, NULL otherwise. | 
| faultpage | Linear page number of the page being decommitted. | 
The return value of this function is ignored. The parameters have the following meanings:
| ppagerdata | Address of a pager-defined 32-bit value stored with the virtual page. The pager can modify this value during page in and out operations, but not at other times. | 
| ppage | Undefined. | 
| faultpage | Linear page number of the dirtied page. | 
| PD_SWAPPER | Pages controlled by this pager may be paged out. | 
| PD_PAGERONLY | Pages controlled by this pager are never paged out to the swap file. If this value is specified, the VMM calls the pager's virgin-in function as soon as a page is committed; the tainted-in and page-out functions are never called. | 
_PagerRegister