Menu

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.