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.