Bug Check 0xDA: SYSTEM_PTE_MISUSE
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.
Important
This article is for programmers. If you're a customer who has received a blue screen error code while using your computer, see Troubleshoot blue screen errors.
SYSTEM_PTE_MISUSE Parameters
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 |
The caller requested 0 mappings. |
0x101 |
The first mapping address |
The caller's identifying tag |
The owner's identifying tag |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
The caller is not unmapping the entirety of the locked mapping address space. |
0x200 |
The first mapping address |
0 |
0 |
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 |
One of the mappings that the caller is attempting to reserve has already been reserved. |
0x300 |
The first mapping address to release |
0 |
0 |
The caller is attempting to release a mapping address space that contains no mappings. |
0x301 |
The address of the mapping |
0 |
0 |
The caller is attempting to release a mapping that it is not permitted to release. |
0x302 |
The address that the caller is trying to release. |
Reserved |
Reserved |
The caller is attempting to release a system address that is not currently mapped. |
0x303 |
The first mapping address |
The number of mappings to release |
0 |
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 |
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 |
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 |
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 |
The caller is trying to free an I/O space mapping that the system is unaware of. |
Cause
The error is indicated by the value of Parameter 1.
A stack trace will identify the driver that caused the error.