Debugging Tools for Windows |
The SYSTEM_PTE_MISUSE bug check has a value of 0x000000DA. This indicates that a page table entry (PTE) routine has been used in an improper way.
The following parameters are displayed on the blue screen. Parameter 1 indicates the type of violation. The meaning of the other parameters depends on the value of Parameter 1.
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Cause of Error |
---|---|---|---|---|
0x01 | The address of the internal lock tracking structure | The address of the memory descriptor list | The address of the duplicate internal lock tracking structure | The mapping being freed is a duplicate. |
0x02 | The address of the internal lock tracking structure | The number of mappings that the system expects to free | The number of mappings that the driver is requesting to free | The number of mappings being freed is incorrect. |
0x03 | The address of the first internal tracking structure found | The mapping address that the system expects to free | The mapping address that the driver is requesting to free | The mapping address being freed is incorrect. |
0x04 | The address of the internal lock tracking structure | The page frame number that the system expects should be first in the MDL | The page frame number that is currently first in the MDL | The first page of the mapped MDL has changed since the MDL was mapped. |
0x05 | The address of the first internal tracking structure found | The virtual address that the system expects to free | The virtual address that the driver is requesting to free | The start virtual address in the MDL being freed has changed since the MDL was mapped. |
0x06 | The MDL specified by the driver | The virtual address specified by the driver | The number of mappings to free (specified by the driver) | The MDL being freed was never (or is currently not) mapped. |
0x07 | The initial mapping | The number of mappings | Reserved | (Windows 2000 only) The mapping range is being double-allocated. |
0x08 | The initial mapping | The number of mappings the caller is freeing | The number of mappings the system thinks should be freed | (Windows 2000 only) The caller is asking to free an incorrect number of mappings. |
0x09 | The initial mapping | The number of mappings that the caller is freeing | The mapping index that the system thinks is already free | (Windows 2000 only) The caller is asking to free several mappings, but at least one of them is not allocated. |
0x0A | 1: The driver requested "bug check on failure" in the MDL. 0: The driver did not request "bug check on failure" in the MDL. |
The number of mappings that the caller is allocating | The type of mapping pool requested | (Windows 2000 only) The caller is asking to allocate zero mappings. |
0x0B | The corrupt mapping | The number of mappings that the caller is allocating | The type of mapping pool requested | (Windows 2000 only) The mapping list was already corrupt at the time of this allocation. The corrupt mapping is located below the lowest possible mapping address. |
0x0C | The corrupt mapping | The number of mappings that the caller is allocating | The type of mapping pool requested | (Windows 2000 only) The mapping list was already corrupt at the time of this allocation. The corrupt mapping is located above the lowest possible mapping address. |
0x0D | The initial mapping | The number of mappings that the caller is freeing | The type of mapping pool | (Windows 2000 only) The caller is trying to free zero mappings. |
0x0E | The initial mapping | The number of mappings that the caller is freeing | The type of mapping pool | (Windows 2000 only) The caller is trying to free mappings, but the guard mapping has been overwritten. |
0x0F | The non-existent mapping | The number of mappings that the caller is trying to free | The type of mapping pool being freed | (Windows 2000 only) The caller is trying to free a non-existent mapping. The non-existent mapping is located below the lowest possible mapping address. |
0x10 | The non-existent mapping | The number of mappings the caller is trying to free | The type of mapping pool being freed | (Windows 2000 only) The caller is trying to free a non-existent mapping. The non-existent mapping is located above the highest possible mapping address. |
0x11 | The non-existent mapping | The number of mappings that the caller is trying to free | The type of mapping pool being freed | (Windows 2000 only) The caller is trying to free a non-existent mapping. The non-existent mapping is at the base of the mapping address space. |
0x100 | The number of mappings being requested | The caller's identifying tag | The address of the routine that called the caller of this routine | (Windows XP and later only) The caller requested 0 mappings. |
0x101 | The first mapping address | The caller's identifying tag | The owner's identifying tag | (Windows XP and later only) A caller is trying to free a mapping address range that it does not own. |
0x102 | The first mapping address | The caller's identifying tag | Reserved | (Windows XP and later only) The mapping address space that the caller is trying to free is apparently empty. |
0x103 | The address of the invalid mapping | The caller's identifying tag | The number of mappings in the mapping address space | (Windows XP and later only) The mapping address space that the caller is trying to free is still reserved. MmUnmapReservedMapping must be called before MmFreeMappingAddress. |
0x104 | The first mapping address | The caller's identifying tag | The owner's identifying tag | (Windows XP and later only) The caller is attempting to map an MDL to a mapping address space that it does not own. |
0x105 | The first mapping address | The caller's identifying tag | Reserved | (Windows XP and later only) The caller is attempting to map an MDL to an invalid mapping address space. The caller has mostly likely specified an invalid address. |
0x107 | The first mapping address | The address of the non-empty mapping | The last mapping address | (Windows XP and later only) The caller is attempting to map an MDL to a mapping address space that has not been properly reserved. The caller should have called MmUnmapReservedMapping prior to calling MmMapLockedPagesWithReservedMapping |
0x108 | The first mapping address | The caller's identifying tag | The owner's identifying tag | (Windows XP and later only) The caller is attempting to unmap a locked mapping address space that it does not own. |
0x109 | The first mapping address | The caller's identifying tag | Reserved | (Windows XP and later only) The caller is attempting to unmap a locked virtual address space that is apparently empty. |
0x10A | The first mapping address | The number of mappings in the locked mapping address space | The number of mappings to unmap | (Windows XP and later only) The caller is attempting to unmap more mappings than actually exist in the locked mapping address space. |
0x10B | The first mapping address | The caller's identifying tag | The number of mappings to unmap | (Windows XP and later only) The caller is attempting to unmap a portion of a locked virtual address space that is not currently mapped. |
0x10C | The first mapping address | The caller's identifying tag | The number of mappings to unmap | (Windows XP and later only) The caller is not unmapping the entirety of the locked mapping address space. |
0x200 | The first mapping address | 0 | 0 | (Windows XP and later only) The caller is attempting to reserve a mapping address space that contains no mappings. |
0x201 0x202 |
The first mapping address to reserve | The address of the mapping that has already been reserved | The number of mappings to reserve | (Windows XP and later only) One of the mappings that the caller is attempting to reserve has already been reserved. |
0x300 | The first mapping address to release | 0 | 0 | (Windows XP and later only) The caller is attempting to release a mapping address space that contains no mappings. |
0x301 | The address of the mapping | 0 | 0 | (Windows XP and later only) The caller is attempting to release a mapping that it is not permitted to release. |
0x303 | The first mapping address | The number of mappings to release | 0 | (Windows XP and later only) The caller is attempting to release a mapping address range that was not reserved. |
0x304 | The first mapping address | The number of mappings to release | 0 | (Windows XP and later only) The caller is attempting to release a mapping address range that begins in the middle of a different allocation. |
0x305 | The first mapping address | The number of mappings that the caller is trying to release | The number of mappings that should be released | (Windows XP and later only) The caller is attempting to release the wrong number of mappings. |
0x306 | The first mapping address | The free mapping address | The number of mappings to release | (Windows XP and later only) One of the mappings that the caller is attempting to release is already free. |
0x400 | The base address of the I/O space mapping | The number of pages to be freed | 0 | (Windows XP and later only) The caller is trying to free an I/O space mapping that the system is unaware of. |
The error is indicated by the value of Parameter 1.
A stack trace will identify the driver that caused the error.