Probing a guard page |
Application Verifier break message
Probing a guard page.
Probable cause
This stop is generated if Application Verifier detects an IsBadXXXPtr call for a memory allocation that contains as least on GUARD_PAGE. This is very bad because it is very possible that this GUARD_PAGE is the end of the current stack of a thread. As documented in the MSDN library: Dereferencing potentially invalid pointers can disable stack expansion in other threads. A thread exhausting its stack, when stack expansion has been disabled, results in the immediate termination of the parent process, with no pop-up error window or diagnostic information.
Information displayed by Application Verifier
Parameter1 - Start address
Parameter2 - Memory block size
Parameter3 - Address of guard page
Parameter4 - Not used
Description - Probing a guard page
Additional information
Verifier stop code 0605.
To debug this stop look at the current stack trace (kb) and try to determine why the caller of the IsBadXXXPtr function ended up probing a GUARD_PAGE.
MSDN library lists a few reasons why applications should not use the IsBadXXXPtr APIs:
-
In a preemptive multitasking environment, it is possible for some other thread to change the process's access to the memory being tested.
-
Dereferencing potentially invalid pointers can disable stack expansion in there threads. A thread exhausting its stack, when stack expansion has been disabled, results in the immediate termination of the parent process, with no pop-up error window or diagnostic information.
-
Threads in a process are expected to cooperate in such a way that one will not free memory that the other needs. Use of this function does not negate the need to do this. If this is not done, the application may fail in an unpredictable manner.
Because of all these reasons, it is recommended to never use these APIs.