#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