Virtual Devices (3.1) (vdag31qh.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
IPF_Data
                                                     Up Next Previous
────────────────────────────────────────────────────────────────────────────
 
include vmm.inc
 
IPF_Data    struc
    IPF_LinAddr     dd  ?   ; CR2 address of fault
    IPF_MapPageNum  dd  ?   ; Possible converted page number of fault
    IPF_PTEEntry    dd  ?   ; Contents of PTE that faulted
    IPF_FaultingVM  dd  ?   ; May not = current VM (IPF_V86PgH set)
    IPF_Flags       dd  ?   ; Flags
IPF_Data    ends
 
The IPF_Data structure contains information about the current invalid page
fault.
 
Member          Description
────────────────────────────────────────────────────────────────────────────
 
IPF_LinAddr     Specifies the CR2 address of the page fault.
 
IPF_MapPageNum  Specifies the possible converted page number of the fault.
 
IPF_PTEEntry    Specifies the contents of the page-table entry that caused
                the fault.
 
IPF_FaultingVM  Specifies the handle identifying the virtual machine that
                caused the fault. This is not necessarily the current
                virtual machine.
 
IPF_Flags       Specifies the invalid-page-fault flags. It can be a
                combination of the following values:
 
                Value       Meaning
                ────────────────────────────────────────────────────────────
                IPF_PgDir   Page directory entry not present (not-present
                            page table).
 
                IPF_V86Pg   Unexpected not-present page in V86.
 
                IPF_V86PgH  Unexpected not-present page in V86 at high
                            linear address.
 
                IPF_InvTyp  Page has invalid not-present type.
 
                IPF_PgErr   Pageswap device could not page for some reason.
 
                IPF_ReFlt   Re-entrant page fault.
 
                IPF_VMM     Page fault caused by a virtual device.
 
                IPF_PM      Page fault caused by virtual machine running in
                            protected mode.
 
                IPF_V86     Page fault caused by virtual machine running in
                            V86 mode.
 
Comments
 
Invalid page faults occur in a virtual machine other than the current
virtual machine if the high linear address of the virtual machine is
accessed. In this case, the IPF_FaultingVM field is set to the handle of the
virtual machine that owns the high linear address.
 
See Also
 
Hook_Invalid_Page_Fault