Compartir a través de


Comprobador de aplicación: códigos de detención - Varios

Los siguientes códigos de detención se incluyen en este conjunto de pruebas.

Llamada peligrosa a TerminateThread.

Causa probable

Esta detención se genera si un subproceso (el identificador de subproceso es parameter1) finaliza explícitamente mediante TerminateThread.Esta función es muy peligrosa porque introduce daños en los datos y interbloqueos (según MSDN).

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Identificador de subproceso para el autor de la llamada de Terminatethread.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Peligroso
  • Id. de detención:  TERMINATE_THREAD_CALL
  • Código de detención:  100NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Posible desbordamiento de pila en condiciones de memoria baja.

Causa probable

Esta detención se genera si el tamaño de confirmación de pila inicial de un subproceso es tal que se puede generar un desbordamiento de pila en condiciones de memoria baja si no se puede extender la pila.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - No se usa.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Peligroso
  • Id. de detención:  STACK_OVERFLOW
  • Código de detención:  100NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Se llama a ExitProcess mientras se siguen ejecutando varios subprocesos.

Causa probable

Esta detención se genera si un subproceso llama a ExitProcess mientras se ejecutan varios subprocesos. En tal caso, se llamará internamente a TerminateThread para cada subproceso y esto puede crear interbloqueos o daños en los datos.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Número de subprocesos en ejecución.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Peligroso
  • Id. de detención:  INVALID_EXIT_PROCESS_CALL
  • Código de detención:  100NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Se llama a LoadLibrary durante DllMain.

Causa probable

Esta detención se genera si el código de DllMain llama a LoadLibrary o FreeLibary. Es el comportamiento prohibido por MSDN.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dll Name (use du to dump).
  • Parámetro 2  Dirección base de - Dll.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Peligroso
  • Id. de detención:  INVALID_LOAD_LIBRARY_CALL
  • Código de detención:  100NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Se llama a FreeLibrary durante DllMain.

Causa probable

Esta detención se genera si el código de DllMain llama a LoadLibrary o FreeLibary. Es el comportamiento prohibido por MSDN.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dll Name (use du to dump).
  • Parámetro 2  Dirección base de - Dll.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Peligroso
  • Id. de detención:  INVALID_FREE_LIBRARY_CALL
  • Código de detención:  100NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Se llama a SetProcessWorkingSetSize con MinimumWorkingSetSize = 0xFFFFFFFF.

Causa probable

Use MinimumWorkingSetSize = (SIZE_T) -1.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - No se usa.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Peligroso
  • Id. de detención:  INVALID_MINIMUM_PROCESS_WORKING_SIZE
  • Detener código:  100NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Se llama a SetProcessWorkingSetSize con MaximumWorkingSetSize = 0xFFFFFFFF.

Causa probable

Use MaximumWorkingSetSize = (SIZE_T) -1.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - No se usa.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Peligroso
  • Id. de detención:  INVALID_MAXIMUM_PROCESS_WORKING_SIZE
  • Detener código:  100NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Se llama a SetProcessWorkingSetSizeEx con MinimumWorkingSetSize = 0xFFFFFFFF.

Causa probable

Use MinimumWorkingSetSize = (SIZE_T) -1.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - No se usa.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Peligroso
  • Id. de detención:  INVALID_MINIMUM_PROCESS_WORKING_SIZE_EX
  • Detener código:  100NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Se llama a SetProcessWorkingSetSizeEx con MaximumWorkingSetSize = 0xFFFFFFFF.

Causa probable

Use MaximumWorkingSetSize = (SIZE_T) -1.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - No se usa.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Peligroso
  • Id. de detención:  INVALID_MAXIMUM_PROCESS_WORKING_SIZE_EX
  • Detener código:  100NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

El subproceso no puede poseer una sección crítica.

Causa probable

Esta detención se genera si un subproceso (el identificador de subproceso es parameter1) finaliza, se suspende o está en un estado (el subproceso de trabajo ha finalizado un elemento de trabajo) en el que no puede contener una sección crítica. El subproceso actual es el culpable. Para depurar esta detención, use los siguientes comandos del depurador: $ kb : para obtener el seguimiento de la pila actual. Si el subproceso actual es el propietario de la sección crítica, probablemente llame a ExitThread. El subproceso actual debe haber publicado la sección crítica antes de salir. Si el subproceso actual llama a TerminateThread o SuspendThread, no debe hacerlo para un subproceso que contenga una sección crítica. $ !cs -s parameter2: información de volcado sobre esta sección crítica. $ ln parameter2: para mostrar símbolos cerca de la dirección de la sección crítica. Esto debería ayudar a identificar la sección crítica filtrada. Parámetro $ dps4: para volcar el seguimiento de la pila para esta inicialización de sección crítica.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Identificador de subproceso.
  • Parámetro 2  Dirección  de sección crítica.
  • Parámetro 3  - Dirección de información de depuración de la sección crítica.
  • Parámetro 4  - Critical section initialization stack trace.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  EXIT_THREAD_OWNS_LOCK
  • Detener código:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Descargar dll que contiene una sección crítica activa.

Causa probable

Esta detención se genera si un archivo DLL tiene una variable global que contiene una sección crítica y el archivo DLL se descarga, pero la sección crítica no se ha eliminado. Para depurar esta detención, use los siguientes comandos del depurador: $ du parameter3: para volcar el nombre del archivo DLL culpable. $ .reload dllname o .reload dllname = parameter4 : para volver a cargar los símbolos de ese archivo DLL. $ !cs -s parameter1: información de volcado sobre esta sección crítica. $ ln parameter1: para mostrar símbolos cerca de la dirección de la sección crítica. Esto debería ayudar a identificar la sección crítica filtrada. Parámetro $ dps2: para volcar el seguimiento de la pila para esta inicialización de sección crítica.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  -  Seguimiento de la pila de inicialización de la sección crítica.
  • Parámetro 3  Dirección del nombre - DLL.
  • Parámetro 4  Dirección base de - DLL.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_IN_UNLOADED_DLL
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Liberar bloque de montón que contiene una sección crítica activa.

Causa probable

Esta detención se genera si una asignación de montón contiene una sección crítica, la asignación se libera y la sección crítica no se ha eliminado. Para depurar esta detención, use los siguientes comandos del depurador: $ !cs -s parameter1: información de volcado de memoria sobre esta sección crítica. $ ln parameter1: para mostrar símbolos cerca de la dirección de la sección crítica. Esto debería ayudar a identificar la sección crítica filtrada. Parámetro $ dps2: para volcar el seguimiento de la pila para esta inicialización de sección crítica. $ parameter3 y parameter4 pueden ayudar a comprender dónde se asignó este bloque de montón (el tamaño de la asignación probablemente sea significativo).

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  -  Seguimiento de la pila de inicialización de la sección crítica.
  • Parámetro 3  - Dirección del bloque del montón.
  • Parámetro 4  - Tamaño del bloque del montón.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_IN_FREED_HEAP
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Doble sección crítica inicializada o dañada.

Causa probable

Normalmente, esta detención se genera si se ha inicializado una sección crítica más de una vez. En este caso, parameter3 y parameter4 son las direcciones de seguimiento de la pila para dos de estas inicializaciones. Otras veces es posible obtener esta detención si la sección crítica o su estructura de información de depuración se ha dañado. En este segundo caso, es posible que parameter3 y parameter4 no sean válidos e inútiles. Para depurar esta parada: $ !cs -s -d parameter2: volcado de información sobre esta sección crítica. $ ln parameter1: para mostrar símbolos cerca de la dirección de la sección crítica. Esto puede ayudar a identificar la sección crítica si se trata de una variable global. $ dps parameter3 y dps parameter4: para identificar las dos rutas de acceso de código para inicializar esta sección crítica.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  - Dirección de la estructura de información de depuración que se encuentra en la lista activa.
  • Parámetro 3  - Primer seguimiento de pila de inicialización.
  • Parámetro 4  - Segundo seguimiento de pila de inicialización.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_DOUBLE_INITIALIZE
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Memoria libre que contiene una sección crítica activa.

Causa probable

Esta detención se genera si se liberó la memoria que contiene una sección crítica, pero la sección crítica no se ha eliminado mediante DeleteCriticalSection. Para depurar esta detención, use los siguientes comandos del depurador: $ !cs -s -d parameter2 : información de volcado de memoria sobre esta sección crítica. Parámetro $ dps3: para identificar la ruta de acceso del código para inicializar esta sección crítica. En la mayoría de los casos, el comprobador de bloqueo detecta secciones críticas filtradas inmediatamente contenidas en una asignación de montón, un intervalo dll, una asignación de memoria virtual o un intervalo de memoria asignado mapViewOfFile y emite diferentes detenciones en estos casos. Por lo tanto, quedan muy pocos casos para esta detención del comprobador. El bloqueo debe estar en un intervalo de memoria liberado por código en modo kernel o liberado entre procesos por API como VirtualFreeEx. Normalmente, esta detención se encontrará si una detención anterior (por ejemplo, LOCK_IN_FREED_HEAP o LOCK_IN_UNLOADED_DLL) continuó presionando "g" en la consola del depurador.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  - Dirección de información de depuración de la sección crítica.
  • Parámetro 3  -  Seguimiento de la pila de inicialización de la sección crítica.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_IN_FREED_MEMORY
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Sección crítica dañada.

Causa probable

Esta detención se genera si el campo DepurarInfo de la sección crítica apunta a memoria libre. Normalmente, se encuentra otra estructura DebugInfo válida en la lista de secciones críticas activas. Sin daños, los dos punteros deben ser idénticos. Para depurar esta detención, use los siguientes comandos del depurador: $ !cs -s -d parameter3: información de volcado de memoria sobre esta sección crítica basada en el contenido actual de la estructura de información de depuración que se encuentra en la lista activa (esta estructura rara vez está dañada, por lo que normalmente esta información es de confianza). $ !cs -s parameter1: volcado de información sobre esta sección crítica basada en el contenido actual de la estructura de sección crítica (la estructura ya está dañada, por lo que a veces esta información no es de confianza). Parámetro $ dps4: para identificar la ruta de acceso del código para inicializar esta sección crítica. Volque la sección crítica en address parameter1 y busque el patrón de daños. Con buenos símbolos para ntdll.dl puede usar los siguientes comandos: $ dt ntdll!_RTL_CRITICAL_SECTION LOCK_ADDRESS $ dt ntdll!_RTL_CRITICAL_SECTION_DEBUG DEBUG_ADDRESS

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  - Dirección de información de depuración no válida de esta sección crítica.
  • Parámetro 3  - Dirección de la información de depuración que se encuentra en la lista activa.
  • Parámetro 4  - Seguimiento de pila de inicialización.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_CORRUPTED
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Subproceso de propietario de sección crítico no válido.

Causa probable

Esta detención se genera si el identificador del subproceso propietario no es válido en el contexto actual. Para depurar esta parada: $ !cs -s parameter1: volcado de información sobre esta sección crítica. $ ln parameter1: para mostrar símbolos cerca de la dirección de la sección crítica. Esto debería ayudar a identificar la sección crítica.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  -  Subproceso propietario.
  • Parámetro 3  - Se esperaba un subproceso propietario.
  • Parámetro 4  - Dirección de información de depuración de la sección crítica.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_INVALID_OWNER
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Recuento de recursividad de sección crítica no válida.

Causa probable

Esta detención se genera si el campo recuento de recursividad de la estructura de sección crítica no es válido en el contexto actual. Para depurar esta parada: $ !cs -s parameter1: volcado de información sobre esta sección crítica. $ ln parameter1: para mostrar símbolos cerca de la dirección de la sección crítica. Esto debería ayudar a identificar la sección crítica.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  - Recuento de recursividad.
  • Parámetro 3  - Se esperaba un recuento de recursividad.
  • Parámetro 4  - Dirección de información de depuración de la sección crítica.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_INVALID_RECURSION_COUNT
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Eliminación de la sección crítica con recuento de bloqueos no válidos.

Causa probable

Esta detención se genera si una sección crítica es propiedad de un subproceso si se elimina o si la sección crítica no está inicializada. Para depurar esta parada: $ !cs -s parameter1: volcado de información sobre esta sección crítica. Si el subproceso propietario es 0, no se ha inicializado la sección crítica. $ ln parameter1: para mostrar símbolos cerca de la dirección de la sección crítica. Esto debería ayudar a identificar la sección crítica.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  - Recuento de bloqueos.
  • Parámetro 3  - Se esperaba el recuento de bloqueos.
  • Parámetro 4  -  Subproceso propietario.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_INVALID_LOCK_COUNT
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Sección crítica demasiado publicada o dañada.

Causa probable

Esta detención se genera si se libera una sección crítica más veces que el subproceso actual adquirido. Para depurar esta parada: $ !cs -s parameter1: volcado de información sobre esta sección crítica. $ !cs -s -d parameter4: información de volcado sobre esta sección crítica. $ ln parameter1: para mostrar símbolos cerca de la dirección de la sección crítica. Esto debería ayudar a identificar la sección crítica.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  - Recuento de bloqueos.
  • Parámetro 3  - Se esperaba el recuento de bloqueos.
  • Parámetro 4  - Dirección de información de depuración de la sección crítica.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_OVER_RELEASED
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Sección crítica no inicializada.

Causa probable

Esta detención se genera si se usa una sección crítica sin inicializarse o después de eliminarla. Para depurar esta parada: $ ln parameter1: para mostrar símbolos cerca de la dirección de la sección crítica. Esto debería ayudar a identificar la sección crítica.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  - Dirección de información de depuración de la sección crítica.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_NOT_INITIALIZED
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Ya se ha inicializado la sección crítica.

Causa probable

Esta detención se genera si el subproceso actual reinicializa una sección crítica. Para depurar esta parada: $ !cs -s parameter1 o !cs -s -d parameter2 : volcado de información sobre esta sección crítica. $ ln parameter1: para mostrar símbolos cerca de la dirección de la sección crítica. Esto puede ayudar a identificar la sección crítica si se trata de una variable global. Parámetro $ dps3: para identificar la ruta de acceso del código para la primera inicialización de esta sección crítica. $ kb: para mostrar el seguimiento de la pila actual, que reinicializa esta sección crítica.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  - Dirección de información de depuración de la sección crítica.
  • Parámetro 3  - Primer seguimiento de pila de inicialización. Uso de dps para volcarlo si no es NULL
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_ALREADY_INITIALIZED
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Liberar memoria virtual que contiene una sección crítica activa.

Causa probable

Esta detención se genera si el subproceso actual llama a VirtualFree en un bloque de memoria que contiene una sección crítica activa. La aplicación debe llamar a DeleteCriticalSection en esta sección crítica antes de liberar esta memoria. $ kb: para mostrar el seguimiento de la pila actual, que llama a VirtualFree. El probable culpable es el archivo DLL que llama a VirtualFree. $ !cs -s parameter1: información de volcado de memoria sobre esta sección crítica. $ dps parameter2: para identificar la ruta de acceso del código para la inicialización de esta sección crítica.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  -  Seguimiento de la pila de inicialización de la sección crítica.
  • Parámetro 3  - Dirección de bloque de memoria.
  • Parámetro 4  - Tamaño del bloque de memoria.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_IN_FREED_VMEM
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Desasignación de la región de memoria que contiene una sección crítica activa.

Causa probable

Esta detención se genera si el subproceso actual llama a UnmapViewOfFile en un bloque de memoria que contiene una sección crítica activa. La aplicación debe llamar a DeleteCriticalSection en esta sección crítica antes de anular el mapa de esta memoria. $ kb: para mostrar el seguimiento de la pila actual, que llama a UnmapViewOfFile . El probable culpable es el archivo DLL que llama a UnmapViewOfFile. $ !cs -s parameter1: información de volcado de memoria sobre esta sección crítica. $ dps parameter2: para identificar la ruta de acceso del código para la inicialización de esta sección crítica.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  -  Seguimiento de la pila de inicialización de la sección crítica.
  • Parámetro 3  - Dirección de bloque de memoria.
  • Parámetro 4  - Tamaño del bloque de memoria.

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_IN_UNMAPPED_MEM
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

El subproceso actual no posee secciones críticas.

Causa probable

Esta detención se genera si el subproceso actual llama a LeaveCriticalSection, pero, según la contabilidad del comprobador interno, no posee ninguna sección crítica. Si parameter2 es cero, probablemente se trata de un error en el subproceso actual. Intenta dejar una sección crítica que no ha especificado o quizás llama a LeaveCriticalSection más veces que a EnterCriticalSection para la misma sección crítica. Si parameter2 no es cero (es un número entero negativo), es probable que las estructuras de datos del comprobador interno estén dañadas.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  - Número de secciones críticas que pertenecen al subproceso actual.
  • Parámetro 3  - No se usa
  • Parámetro 4  - No se usa

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  THREAD_NOT_LOCK_OWNER
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Uso de la sección crítica que es privada para otro archivo DLL.

Causa probable

Esta detención se genera si el subproceso actual intenta usar un bloqueo privado que reside dentro de otro archivo DLL. Por ejemplo, a.dll intenta escribir una sección crítica definida dentro de ntdll.dll. Los bloqueos privados no se pueden usar en archivos DLL.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de sección crítica.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa
  • Parámetro 4  - No se usa

Información adicional
  • Capa de prueba:  Cerraduras
  • Id. de detención:  LOCK_PRIVATE
  • Código de detención:  200NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

El bloqueo SRW no se inicializa.

Causa probable

Esta detención se genera si un subproceso intenta usar el bloqueo SRW (Param1) que no se inicializa. $ kb: para obtener el seguimiento de la pila actual. Aquí es donde se usa el bloqueo SRW. El bloqueo SRW debe inicializarse con InitializeSRWLock antes de poder usarlo.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - SRW Lock
  • Parámetro 2  - No se usa
  • Parámetro 3  - No se usa
  • Parámetro 4  - No se usa

Información adicional
  • Capa de prueba:  SRWLock
  • Id. de detención:  NOT_INITIALIZED
  • Código de detención:  250NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

El bloqueo SRW ya se ha inicializado.

Causa probable

Esta detención se genera si se vuelve a inicializar el bloqueo SRW (Param1). Si otros subprocesos usan activamente el bloqueo SRW, al volver a inicializar el bloqueo se producirá un comportamiento imprevisible por parte de la aplicación, incluidos bloqueos y bloqueos. El seguimiento de la pila de inicialización puede mostrar una adquisición si el bloqueo SRW se inicializó estáticamente. $ kb: para obtener el seguimiento de la pila actual. Aquí es donde se vuelve a inicializar el bloqueo SRW. $ dps Param3: para obtener el seguimiento de la pila de inicialización de bloqueo SRW. Este seguimiento de pila puede mostrar una adquisición si el bloqueo se inicializó estáticamente.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - SRW Lock
  • Parámetro 2  - ThreadId del subproceso que inicializó el bloqueo SRW.
  • Parámetro 3  - Dirección del seguimiento de la pila de inicialización. Use dps <address> para ver dónde se inicializó el bloqueo SRW.
  • Parámetro 4  - No se usa

Información adicional
  • Capa de prueba:  SRWLock
  • Id. de detención:  ALREADY_INITIALIZED
  • Código de detención:  250NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Acquire-Release no coincidente en el bloqueo SRW.

Causa probable

Esta detención se genera si se libera el bloqueo SRW (Param1) con una API de versión incorrecta. Si el bloqueo srW se adquirió para el acceso compartido y se libera mediante la API de versión exclusiva o el bloqueo SRW se adquirió para el acceso exclusivo y se está liberando mediante la API de versión compartida. Esto puede dar lugar a un comportamiento impredecible por parte de la aplicación, incluidos bloqueos y bloqueos. $ kb: para obtener el seguimiento de la pila actual. Aquí es donde se libera el bloqueo SRW mediante la API incorrecta. $ dps Param3: para obtener el seguimiento de pila de adquisición del bloqueo SRW.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - SRW Lock
  • Parámetro 2  - ThreadId del subproceso que adquirió el bloqueo SRW.
  • Parámetro 3  - Dirección del seguimiento de la pila de adquisición. Use dps <address> para ver dónde se adquirió el bloqueo SRW.
  • Parámetro 4  - No se usa

Información adicional
  • Capa de prueba:  SRWLock
  • Id. de detención:  MISMATCHED_ACQUIRE_RELEASE
  • Código de detención:  250NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

El mismo subproceso adquiere el bloqueo SRW de forma recursiva.

Causa probable

Esta detención se genera si el mismo subproceso adquiere recursivamente el mismo subproceso el bloqueo SRW (Param1). Esto dará lugar a un interbloqueo y el subproceso se bloqueará indefinidamente. La adquisición recursiva de un bloqueo SRW en modo exclusivo provocará un interbloqueo. La adquisición recursiva de un bloqueo SRW en modo compartido provocará un interbloqueo cuando haya un subproceso esperando acceso exclusivo. Considere el ejemplo siguiente: - El subproceso A adquiere el bloqueo SRW en modo compartido: el subproceso B intenta acruire el bloqueo SRW en modo exclusivo y esperas: el subproceso A intenta adquirir el bloqueo SRW en modo compartido de forma recursiva. Esto se realizará correctamente siempre que no haya ningún camarero exclusivo (en este caso B). Dado que los bloqueos SRW no tienen hambre de escritura, el subproceso A espera detrás del subproceso B. Ahora, el subproceso B está esperando el subproceso A, que está esperando a que el subproceso B provoque una espera circular y, por tanto, un interbloqueo. $ kb: para obtener el seguimiento de la pila actual. Aquí es donde el bloqueo SRW se adquiere de forma recursiva. $ dps Param2: para obtener el seguimiento de la pila para la primera adquisición.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - SRW Lock
  • Parámetro 2  - Dirección del primer seguimiento de la pila de adquisición. Use dps <address> para ver dónde se adquirió el bloqueo SRW.
  • Parámetro 3  - No se usa
  • Parámetro 4  - No se usa

Información adicional
  • Capa de prueba:  SRWLock
  • Id. de detención:  RECURSIVE_ACQUIRE
  • Detener código:  250NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

El subproceso que sale o finaliza posee un bloqueo SRW.

Causa probable

Esta detención se genera si el subproceso (Param2) que posee el bloqueo SRW (Param1) se está cerrando o finalizando. Esto provocará un bloqueo SRW huérfano y los subprocesos que intentan adquirir este bloqueo bloquearían indefinidamente. $ kb: para obtener el seguimiento de la pila actual. Aquí es donde el subproceso sale o finaliza. $ dps Param3: para obtener el seguimiento de la pila de adquisición del bloqueo SRW.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - SRW Lock
  • Parámetro 2  - ThreadId del subproceso que sale o finaliza.
  • Parámetro 3  - Dirección del seguimiento de la pila de adquisición. Use dps <address> para ver dónde se adquirió el bloqueo SRW.
  • Parámetro 4  - No se usa

Información adicional
  • Capa de prueba:  SRWLock
  • Id. de detención:  EXIT_THREAD_OWNS_LOCK
  • Detener código:  250NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Este subproceso no adquirió el bloqueo SRW.

Causa probable

Esta detención se genera si el subproceso (Param1) está liberando el bloqueo SRW (Param2) que no adquirió el bloqueo. Esto representa una práctica de programación incorrecta que es difícil de conseguir y puede dar lugar a un comportamiento impredecible por parte de la aplicación. $ kb: para obtener el seguimiento de la pila actual. Aquí es donde el subproceso libera el bloqueo SRW que no adquirió. $ dps Param4: para obtener el seguimiento de la pila de adquisición del bloqueo SRW.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - SRW Lock
  • Parámetro 2  - Current ThreadId.
  • Parámetro 3  - ThreadId del subproceso que adquirió el bloqueo SRW.
  • Parámetro 4  - Dirección del seguimiento de la pila de adquisición. Use dps <address> para ver dónde se adquirió el bloqueo SRW.

Información adicional
  • Capa de prueba:  SRWLock
  • Id. de detención:  INVALID_OWNER
  • Detener código:  250NAN
  • Severidad:  Advertencia
  • Error único: 
  • Informe de errores:  Ninguno
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

La memoria que se libera contiene un bloqueo SRW activo.

Causa probable

Esta detención se genera si la dirección de memoria (Param1) que se libera contiene un bloqueo SRW activo que todavía está en uso. Esto puede dar lugar a un comportamiento imprevisible por parte de la aplicación, incluidos bloqueos y bloqueos. $ kb: para obtener el seguimiento de la pila actual. Aquí es donde se libera la memoria que contiene un bloqueo de SRW activo. $ dps Param4: para obtener el seguimiento de la pila de adquisición del bloqueo SRW.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - SRW Lock
  • Parámetro 2  - Dirección de la memoria que se libera.
  • Parámetro 3  - ThreadId del subproceso que adquirió el bloqueo SRW.
  • Parámetro 4  - Dirección del seguimiento de la pila de adquisición. Use dps <address> para ver dónde se adquirió el bloqueo SRW.

Información adicional
  • Capa de prueba:  SRWLock
  • Id. de detención:  IN_FREED_MEMORY
  • Detener código:  250NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

El archivo DLL que se descarga contiene un bloqueo srW activo.

Causa probable

Esta detención se genera si el archivo DLL que se descarga (Param2) contiene un bloqueo SRW activo (Param1) que todavía está en uso. Esto puede dar lugar a un comportamiento imprevisible por parte de la aplicación, incluidos bloqueos y bloqueos. $ kb: para obtener el seguimiento de la pila actual. Aquí es donde se descarga el archivo DLL que contiene un bloqueo de SRW activo. $ du Param2: para buscar el nombre del archivo DLL que se está descargando. $ dps Param4: para obtener el seguimiento de la pila de adquisición del bloqueo SRW.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - SRW Lock
  • Parámetro 2  - Dirección del nombre del archivo DLL que se descarga. Use du <address> para ver el nombre.
  • Parámetro 3  - ThreadId del subproceso que adquirió el bloqueo SRW.
  • Parámetro 4  - Dirección del seguimiento de la pila de adquisición. Use dps <address> para ver dónde se adquirió el bloqueo SRW.

Información adicional
  • Capa de prueba:  SRWLock
  • Id. de detención:  IN_UNLOADED_DLL
  • Detener código:  250NAN
  • Severidad:  Advertencia
  • Error único: 
  • Informe de errores:  Ninguno
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Excepción de identificador no válida para el seguimiento de pila actual.

Causa probable

Esta detención se genera si la función de la parte superior de la pila pasó un identificador no válido a las rutinas del sistema. Normalmente, un comando kb simple mostrará cuál es el valor del identificador pasado (debe ser uno de los parámetros, normalmente el primero). Si el valor es NULL, esto es claramente incorrecto. Si el valor parece correcto, debe usar la extensión del depurador !htrace para obtener un historial de operaciones relacionadas con este valor de identificador. En la mayoría de los casos, debe ser que el valor de identificador se use después de cerrarse.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Código de excepción.
  • Parámetro 2  - Registro de excepción. Use .exr para mostrarlo.
  • Parámetro 3  - Registro de contexto. Use .cxr para mostrarlo.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Manijas
  • Id. de detención:  INVALID_HANDLE
  • Código de detención:  300NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Índice TLS no válido usado para el seguimiento de la pila actual.

Causa probable

Esta detención se genera si la función de la parte superior de la pila pasó un índice TLS no válido a las rutinas del sistema TLS. Normalmente, un comando kb simple revelará lo que está mal. El error típico aquí es asumir un valor determinado para un índice TLS en lugar de llamar a TlsAlloc. Esto puede ocurrir pensando en que siempre obtiene el valor N, por lo que no es necesario llamar a TlsAlloc o con más frecuencia debido a una variable no inicializada.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Índice TLS no válido.
  • Parámetro 2  - Se esperaba una parte inferior del índice.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Manijas
  • Id. de detención:  INVALID_TLS_VALUE
  • Código de detención:  300NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Parámetros no válidos para la llamada WaitForMultipleObjects.

Causa probable

Esta detención se genera si la función en la parte superior de la pila denominada WaitForMultipleObjects con NULL como la dirección de la matriz de identificadores que se va a esperar o con cero como el número de identificadores. Un comando kb simple mostrará la función que llama a esta API incorrectamente.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección del vector de identificadores de objeto.
  • Parámetro 2  - Número de identificadores.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Manijas
  • Id. de detención:  INCORRECT_WAIT_CALL
  • Código de detención:  300NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Identificador NULL pasado como parámetro. Se debe usar un identificador válido.

Causa probable

Esta detención se genera si la función de la parte superior de la pila pasó un identificador NULL a las rutinas del sistema.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - No se usa.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Manijas
  • Id. de detención:  NULL_HANDLE
  • Código de detención:  300NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Esperando un identificador de subproceso en DllMain.

Causa probable

Esta detención se genera si el subproceso actual está ejecutando código dentro de la función DllMain de uno de los archivos DLL cargados en el proceso actual y llama a WaitForSingleObject o WaitForMultipleObjects para esperar en un identificador de subproceso en el mismo proceso. Esto probablemente provocaría un interbloqueo porque el identificador del subproceso no se señalará a menos que el segundo subproceso salga. Cuando el segundo subproceso llamará a ExitThread, intentará adquirir el bloqueo del cargador de DLL y, a continuación, llamará a DllMain (DLL_THREAD_DETACH) para todos los archivos DLL del proceso actual. Pero el bloqueo del cargador es propiedad del primer subproceso (el que está esperando en el identificador del subproceso) para que los dos subprocesos interbloqueen.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Identificador de subproceso.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Manijas
  • Id. de detención:  WAIT_IN_DLLMAIN
  • Código de detención:  300NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Tipo de objeto incorrecto para handle.

Causa probable

Esta detención se genera si el subproceso actual llama a una API con un identificador a un objeto con un tipo de objeto incorrecto. Por ejemplo, llamar a SetEvent con un identificador de semáforo como parámetro generará esta detención. Para depurar esta parada: $ kb : para mostrar el seguimiento de la pila actual. El culpable es probablemente el archivo DLL que llama a verifier.dll; $ du parameter2: para mostrar el tipo real del identificador. El valor de identificador es parameter1. En el ejemplo anterior, se mostrará: Semáforo. $ du parameter3: para mostrar el tipo de objeto esperado por la API. En el ejemplo anterior, este nombre será: Evento. $!htrace parameter1 puede ser útil porque mostrará el seguimiento de la pila para las operaciones recientes de apertura y cierre en este identificador.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Handle value ..
  • Parámetro 2  - Nombre del tipo de objeto. Use du para mostrarlo
  • Parámetro 3  - Se esperaba el nombre del tipo de objeto. Use du para mostrarlo
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Manijas
  • Id. de detención:  INCORRECT_OBJECT_TYPE
  • Detener código:  300NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Descarga del archivo DLL que asignó el índice TLS que no se liberó.

Causa probable

Esta detención se genera si se descarga un archivo DLL que asignó un índice TLS antes de liberar ese índice TLS. Para depurar esta parada: $ du parameter3: mostrar el nombre del archivo DLL culpable; $ .reload xxx.dll=parameter4: volver a cargar símbolos para el archivo DLL culpable (si es necesario). xxx.dll es el nombre del archivo DLL que se muestra en el paso anterior; $ u parameter2: desensamblado el código que asignó tls. Esto debe apuntar a la función que asignó tls pero olvidó liberarla antes de que se descargara el archivo DLL.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - TLS index
  • Parámetro 2  - Dirección del código que asignó este índice TLS.
  • Parámetro 3  Dirección del nombre del archivo - DLL. Use du para volcarlo.
  • Parámetro 4  Dirección base de - DLL.

Información adicional
  • Capa de prueba:  TLS
  • Id. de detención:  TLS_LEAK
  • Detener código:  350NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Estructura TLS de comprobador dañada.

Causa probable

Esta detención se genera si las estructuras de comprobador internas usadas para almacenar el estado de las ranuras TLS para el subproceso están dañadas. Es muy probable que esto se deba a daños aleatorios en el proceso.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  Dirección - TEB.
  • Parámetro 2  - Se esperaba la dirección TEB.
  • Parámetro 3  - Identificador de subproceso.
  • Parámetro 4  - Se esperaba el identificador de subproceso.

Información adicional
  • Capa de prueba:  TLS
  • Id. de detención:  CORRUPTED_TLS
  • Detener código:  350NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Uso de un índice TLS no válido.

Causa probable

Esta detención se genera si se usa un índice TLS no válido. En la mayoría de los casos, se debe a que el código sigue usando este índice cuando se llama a TlsFree. Este es un ejemplo para el subproceso de grupo de subprocesos. T1: Dll carga y TlsAlloc T1: Devolución de llamada de cola T1: devolución de llamada o cancelada o omitida Omitida T1: TlsFree T2: Callback se ejecuta y llama a TlsSetValue T1: Dll unloads

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - TLS index
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  TLS
  • Id. de detención:  INVALID_TLS_INDEX
  • Detener código:  350NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Liberar el bloque de memoria virtual con un tamaño o una dirección de inicio no válidos.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta una descarga VirtualFree o una DLL con una dirección de inicio o un tamaño de inicio no válidos de la asignación de memoria. En el caso de que dll descargue esto probablemente significa un daño en la memoria dentro de la lista dll cargada. Para depurar esta detención, examine el seguimiento de la pila actual y la dirección de memoria y el tamaño que está a punto de liberarse e intente determinar por qué no son válidos.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección base de asignación.
  • Parámetro 2  - Tamaño de la región de memoria.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_FREEMEM
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Llamada de asigno virtual incorrecta.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta una llamada a VirtualAlloc con una dirección de inicio o un tamaño no válidos de la asignación de memoria. Para depurar esta detención, examine el seguimiento de pila actual (kb) y la dirección y el tamaño de memoria que está a punto de asignarse e intente determinar por qué no son válidos.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Puntero a la dirección base de asignación.
  • Parámetro 2  - Puntero al tamaño de la región de memoria.
  • Parámetro 3  - No se usa
  • Parámetro 4  - No se usa

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_ALLOCMEM
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Llamada de vista de mapa incorrecta.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta una llamada a MapViewOfFile con una dirección base o tamaño no válidos de la asignación. Para depurar esta detención, examine el seguimiento de pila actual (kb) y la dirección y el tamaño de memoria que está a punto de asignarse e intente determinar por qué no son válidos.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Puntero a la dirección base de asignación.
  • Parámetro 2  - Puntero al tamaño de la vista.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_MAPVIEW
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Sondeo de una dirección no válida.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta una llamada a IsBadXXXPtr con una dirección no válida (por ejemplo, una dirección en modo kernel, en lugar de una dirección del modo de usuario normal) para que se sondee el búfer de memoria. Para depurar esta detención, examine el seguimiento de pila actual (kb) e intente determinar por qué el autor de la llamada de la función IsBadXXXPtr terminó con una dirección no válida. Muchas veces, la dirección es falsa sin formato, por ejemplo, un puntero no inicializado. MSDN Library enumera algunas razones por las que las aplicaciones no deben usar las API IsBadXXXPtr: en un entorno de multitarea preferente, es posible que algún otro subproceso cambie el acceso del proceso a la memoria que se está probando. La desreferenciación de punteros potencialmente no válidos puede deshabilitar la expansión de la pila en otros subprocesos. Un subproceso que agota su pila, cuando se ha deshabilitado la expansión de la pila, da como resultado la finalización inmediata del proceso primario, sin ventana de error emergente ni información de diagnóstico. Se espera que los subprocesos de un proceso cooperen de forma que uno no libere memoria que el otro necesite. El uso de esta función no niega la necesidad de hacerlo. Si esto no se hace, la aplicación puede producir un error de forma impredecible. Por todas estas razones, se recomienda no usar nunca estas API.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de inicio.
  • Parámetro 2  - Tamaño del bloque de memoria.
  • Parámetro 3  - Dirección no válida.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  PROBE_INVALID_ADDRESS
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Sondear memoria libre.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta una llamada IsBadXXXPtr para una asignación de memoria que es libre. Esto es muy malo porque es posible que, en algunos otros casos, esta memoria ya se haya reutilizado para alguna otra asignación. Dado que la ruta de acceso del código actual (kb) no posee esa memoria, podría acabar dañando la memoria de otra persona, con efectos desastrosos. Para depurar esta detención, examine el seguimiento de pila actual (kb) e intente determinar por qué el autor de la llamada de la función IsBadXXXPtr terminó sondeando memoria libre. La dirección podría ser falsa sin formato (por ejemplo, puntero sin inicializar) o quizás ya liberó memoria. Si una de las API VirtualFree o UnmapViewOfFile ya liberó la memoria, "!avrf -vs -a parameter3" buscará un registro de seguimientos de pila de las rutas de acceso de código que asignaron o liberaron esa dirección y mostrarán estos seguimientos de pila si están disponibles. Esto podría mostrar el seguimiento de la pila que liberó esta memoria. Con más frecuencia, la memoria es una asignación de montón ya libre. Para comprobar esa posibilidad, "!avrf -hp -a parameter3" buscará un registro de seguimientos de pila de las rutas de acceso de código que asignaron o liberaron esa dirección del montón y mostrarán estos seguimientos de pila si están disponibles. MSDN Library enumera algunas razones por las que las aplicaciones no deben usar las API IsBadXXXPtr: en un entorno de multitarea preferente, es posible que algún otro subproceso cambie el acceso del proceso a la memoria que se está probando. La desreferenciación de punteros potencialmente no válidos puede deshabilitar la expansión de la pila en otros subprocesos. Un subproceso que agota su pila, cuando se ha deshabilitado la expansión de la pila, da como resultado la finalización inmediata del proceso primario, sin ventana de error emergente ni información de diagnóstico. Se espera que los subprocesos de un proceso cooperen de forma que uno no libere memoria que el otro necesite. El uso de esta función no niega la necesidad de hacerlo. Si esto no se hace, la aplicación puede producir un error de forma impredecible. Por todas estas razones, se recomienda no usar nunca estas API.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de inicio.
  • Parámetro 2  - Tamaño del bloque de memoria.
  • Parámetro 3  - Dirección de la página de memoria libre.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  PROBE_FREE_MEM
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Sondeo de una página de protección.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta una llamada IsBadXXXPtr para una asignación de memoria que contiene al menos un GUARD_PAGE. Esto es muy malo porque es muy posible que este GUARD_PAGE sea el final de la pila actual de un subproceso. Como se documenta en MSDN Library: La desreferenciación de punteros potencialmente no válidos puede deshabilitar la expansión de la pila en otros subprocesos. Un subproceso que agota su pila, cuando se ha deshabilitado la expansión de la pila, da como resultado la finalización inmediata del proceso primario, sin ninguna ventana de error emergente ni información de diagnóstico. Para depurar esta detención, examine el seguimiento de pila actual (kb) e intente determinar por qué el autor de la llamada de la función IsBadXXXPtr terminó sondeando un GUARD_PAGE. MSDN Library enumera algunas razones por las que las aplicaciones no deben usar las API isBadXXXPtr: en un entorno de multitarea preferente, es posible que algún otro subproceso cambie el acceso del proceso a la memoria que se está probando. La desreferenciación de punteros potencialmente no válidos puede deshabilitar la expansión de la pila en otros subprocesos. Un subproceso que agota su pila, cuando se ha deshabilitado la expansión de la pila, da como resultado la finalización inmediata del proceso primario, sin ninguna ventana de error emergente ni información de diagnóstico. Se espera que los subprocesos de un proceso colaboren de tal manera que uno no libere memoria que el otro necesite. El uso de esta función no niega la necesidad de hacerlo. Si esto no se hace, la aplicación puede producir un error de forma impredecible. Por todas estas razones, se recomienda no usar nunca estas API.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección de inicio.
  • Parámetro 2  - Tamaño del bloque de memoria.
  • Parámetro 3  - Dirección de la página de protección.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  PROBE_GUARD_PAGE
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Sondeo de la dirección NULL.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta una llamada a IsBadXXXPtr con una dirección NULL. Para depurar esta detención, examine el seguimiento de pila actual (kb) e intente determinar por qué el autor de la llamada de la función IsBadXXXPtr terminó con la dirección NULL. Normalmente, este es el signo de que alguien no comprueba el valor devuelto de una de las funciones de asignación de memoria. Por ejemplo, el código siguiente es incorrecto: int main (void) { PVOID p; p = malloc (1024); Usar (p); return 0; } void Use (PVOID p) { if (IsBadReadPtr (p)) { return; } // // p es seguro para su uso aquí. } Este código debe volver a escribirse como este: int main (void) { PVOID p; p = malloc (1024); if (NULL == p)) { return -1; } Usar (p); return 0; } void Use (PVOID p) { // // p es seguro para su uso aquí. } MSDN Library enumera algunos motivos por los que las aplicaciones no deben usar las API isBadXXXPtr: en un entorno de multitarea preferente, es posible que algún otro subproceso cambie el acceso del proceso a la memoria que se está probando. La desreferenciación de punteros potencialmente no válidos puede deshabilitar la expansión de la pila en otros subprocesos. Un subproceso que agota su pila, cuando se ha deshabilitado la expansión de la pila, da como resultado la finalización inmediata del proceso primario, sin ninguna ventana de error emergente ni información de diagnóstico. Se espera que los subprocesos de un proceso colaboren de tal manera que uno no libere memoria que el otro necesite. El uso de esta función no niega la necesidad de hacerlo. Si esto no se hace, la aplicación puede producir un error de forma impredecible. Por todas estas razones, se recomienda no usar nunca estas API.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - No se usa.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  PROBE_NULL
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Bloque de memoria de sondeo con una dirección o tamaño de inicio no válidos.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta una llamada a IsBadXXXPtr con una dirección de inicio no válida (por ejemplo, una dirección en modo kernel, en lugar de una dirección normal del modo de usuario) o un tamaño no válido para que se sondee el búfer de memoria. Para depurar esta detención, examine el seguimiento de pila actual (kb) e intente determinar por qué el autor de la llamada de la función IsBadXXXPtr terminó con una dirección o un tamaño no válidos. Muchas veces, la dirección o el tamaño son falsas sin formato, por ejemplo, variables no inicializadas. MSDN Library enumera algunas razones por las que las aplicaciones no deben usar las API isBadXXXPtr: en un entorno de multitarea preferente, es posible que algún otro subproceso cambie el acceso del proceso a la memoria que se está probando. La desreferenciación de punteros potencialmente no válidos puede deshabilitar la expansión de la pila en otros subprocesos. Un subproceso que agota su pila, cuando se ha deshabilitado la expansión de la pila, da como resultado la finalización inmediata del proceso primario, sin ninguna ventana de error emergente ni información de diagnóstico. Se espera que los subprocesos de un proceso colaboren de tal manera que uno no libere memoria que el otro necesite. El uso de esta función no niega la necesidad de hacerlo. Si esto no se hace, la aplicación puede producir un error de forma impredecible. Por todas estas razones, se recomienda no usar nunca estas API.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección de inicio.
  • Parámetro 2  - Tamaño del bloque de memoria.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  PROBE_INVALID_START_OR_SIZE
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Descargar dll con un tamaño o dirección de inicio no válidos.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta una descarga dll con una dirección de inicio o un tamaño de inicio no válidos del intervalo de memoria dll. Esto probablemente significa que hay daños en la memoria dentro de la lista de DLL cargada del ntdll.dll interno.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  Dirección  base de memoria -DLL.
  • Parámetro 2  - DLL tamaño del intervalo de memoria.
  • Parámetro 3  Dirección del nombre del archivo - DLL. Use du para volcarlo.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_DLL_RANGE
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Liberar el bloque de memoria dentro del intervalo de direcciones de pila del subproceso actual.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta un elemento VirtualFree para un bloque de memoria que realmente forma parte de la pila del subproceso actual (!). Para depurar esta detención, examine el seguimiento de pila actual (kb) e intente comprender por qué la función que llamó VirtualFree pensó que el bloque de memoria se asignó dinámicamente o se asignó, pero que realmente era memoria asignada desde la pila.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección base de asignación.
  • Parámetro 2  - Tamaño de la región de memoria.
  • Parámetro 3  - Dirección de límite bajo de pila.
  • Parámetro 4  - Dirección de límite alto de pila.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  FREE_THREAD_STACK_MEMORY
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Parámetro FreeType incorrecto para la operación VirtualFree.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta un virtualFree con un valor incorrecto para el parámetro FreeType. Los únicos dos valores aceptables para este parámetro son MEM_DECOMMIT y MEM_RELEASE. Si se llama a VirtualFree con cualquier otro valor excepto estos dos, VirtualFree no liberará la memoria. Para depurar esta detención, examine el seguimiento de pila actual (kb): el autor de la llamada de VirtualFree es probablemente el culpable.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Valor incorrecto usado por la aplicación.
  • Parámetro 2  - Se esperaba el valor correcto 1.
  • Parámetro 3  - Se esperaba el valor correcto 2.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_FREE_TYPE
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Intentando liberar el bloque de memoria virtual que ya está libre.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta un VirtualFree para una dirección que ya está libre. Para depurar esta detención, examine el seguimiento de pila actual (kb) e intente determinar por qué la memoria ya está libre, pero la aplicación está intentando liberarla de nuevo. "!avrf -vs -a parameter1" buscará un registro de seguimientos de pila de las rutas de acceso de código que asignaron o liberaron esa dirección y mostrarán estos seguimientos de pila si están disponibles. Esto podría mostrar el seguimiento de la pila que liberó esta memoria.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de bloque de memoria.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  MEM_ALREADY_FREE
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Parámetro Size incorrecto para la operación VirtualFree (MEM_RELEASE).

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta un virtualFree (MEM_RELEASE) con un valor distinto de cero para el parámetro dwSize. Cuando se usa MEM_RELEASE , el único valor aceptable para este parámetro es 0. Si se llama a VirtualFree con cualquier otro valor excepto 0, VirtualFree no liberará la memoria. Para depurar esta detención, examine el seguimiento de pila actual (kb): el autor de la llamada de VirtualFree es probablemente el culpable.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Tamaño incorrecto usado por la aplicación.
  • Parámetro 2  - Se esperaba un tamaño correcto (0).
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_FREE_SIZE
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Excepción inesperada generada en la rutina de punto de entrada dll.

Causa probable

Esta detención se genera si la función de punto de entrada (DllMain) de un archivo DLL genera una excepción. Un ejemplo por el que esto es incorrecto es: si DllMain(DLL_PROCESS_ATTACH) está generando una excepción, el cargador de archivos DLL de Windows: - Detectar y ocultar la excepción; - Descarga el archivo DLL sin llamar a dllMain(DLL_PROCESS_DETACH). Por lo tanto, en muchos casos, el archivo DLL ya asignó algunos recursos, después generó la excepción y no tendrá la oportunidad de liberar estos recursos en DllMain (DLL_PROCESS_DETACH). Para depurar esta parada: $ du parameter1 - para mostrar el nombre del archivo DLL; $ .exr parameter2 - para mostrar la información de excepción; $ .cxr parameter3 seguido de kb : para mostrar la información de contexto de excepción y el seguimiento de la pila durante el tiempo en que se generó la excepción; $ parameter4 es la dirección de una estructura de comprobador interna y no tiene ninguna importancia para la mayoría de los usuarios del comprobador.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - DLL name (use du para volcarlo).
  • Parámetro 2  - Registro de excepción. Use .exr para mostrarlo.
  • Parámetro 3  - Registro de contexto. Use .cxr para mostrarlo.
  • Parámetro 4  - Verifier dll descriptor

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  DLL_UNEXPECTED_EXCEPTION
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Excepción inesperada generada en la función de subproceso.

Causa probable

Esta detención se genera si una función de subproceso genera una excepción. Esto es malo porque todo el proceso se matará. Para depurar esta parada: $ parameter1 puede ser significativo para el tipo de excepción. Por ejemplo, un código de excepción C0000005 significa infracción de acceso; $ .exr parameter2 - para mostrar la información de excepción; $ .cxr parameter3 seguido de kb - para mostrar la información del contexto de excepción;

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Código de excepción.
  • Parámetro 2  - Registro de excepción. Use .exr para mostrarlo.
  • Parámetro 3  - Registro de contexto. Use .cxr para mostrarlo.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  THREAD_UNEXPECTED_EXCEPTION
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Excepción inesperada generada al sondear la memoria.

Causa probable

Esta detención se genera si se obtiene una excepción durante una llamada a IsBadXXXPtr. Esto significa que el búfer de memoria que estamos sondeando no tiene realmente la protección que asume el autor de la llamada o que la memoria ya se ha liberado, etc. Consulte la explicación anterior sobre otro código de detención (PROBE_INVALID_ADDRESS, PROBE_FREE_MEM, PROBE_GUARD_PAGE, PROBE_NULL, PROBE_INVALID_START_OR_SIZE) para obtener más ejemplos de por qué no se recomienda usar las API IsBadXXXPtr. Para depurar esta parada: $ parameter1 normalmente será C0000005 y eso significa infracción de acceso; $ .exr parameter2 - para mostrar la información de excepción; $ .cxr parameter3 seguido de kb : para mostrar la información del contexto de excepción y el seguimiento de la pila en el momento en que se generó la excepción;

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Código de excepción.
  • Parámetro 2  - Registro de excepción. Use .exr para mostrarlo.
  • Parámetro 3  - Registro de contexto. Use .cxr para mostrarlo.
  • Parámetro 4  - No se usa

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  PROBE_UNEXPECTED_EXCEPTION
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Intentando restablecer la dirección NULL.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta una llamada a VirtualFree (MEM_RESET) con un primer parámetro NULL. MEM_RESET solo se debe usar para la memoria ya asignada, por lo que NULL no es un primer parámetro válido en este caso.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - No se usa.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_MEM_RESET
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Liberar el bloque de memoria del montón dentro del intervalo de direcciones de pila del subproceso actual.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta un HeapFree, para un bloque de memoria que realmente forma parte de la pila del subproceso actual (!). Para depurar esta detención, examine el seguimiento de pila actual (kb) e intente comprender por qué la función que llamó HeapFree pensó que el bloque de memoria se asignó dinámicamente o se asignó, pero que realmente era memoria asignada desde la pila.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección base de asignación.
  • Parámetro 2  - Tamaño de la región de memoria.
  • Parámetro 3  - Dirección de límite bajo de pila.
  • Parámetro 4  - Dirección de límite alto de pila.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  FREE_THREAD_STACK_MEMORY_AS_HEAP
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Desasignación de la región de memoria dentro del intervalo de direcciones de pila del subproceso actual.

Causa probable

Esta detención se genera si el comprobador de la aplicación detecta un UnmapViewOfFile, para un bloque de memoria que realmente forma parte de la pila del subproceso actual (!). Para depurar esta detención, examine el seguimiento de pila actual (kb) e intente comprender por qué la función que llamó a UnmapViewOfFile pensó que el bloque de memoria se asignó dinámicamente o se asignó, pero que realmente era memoria asignada desde la pila.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección base de asignación.
  • Parámetro 2  - Tamaño de la región de memoria.
  • Parámetro 3  - Dirección de límite bajo de pila.
  • Parámetro 4  - Dirección de límite alto de pila.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  FREE_THREAD_STACK_MEMORY_AS_MAP
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Dirección RTL_RESOURCE incorrecta.

Causa probable

Esta detención se genera si la aplicación intenta usar NULL o alguna otra dirección incorrecta (por ejemplo, una dirección en modo kernel) como dirección de un objeto válido. RtlInitializeResource (NULL) es una llamada API incorrecta que desencadenará este tipo de detención del comprobador. param1 es la dirección incorrecta usada y el culpable está en el seguimiento de la pila (mostrarla con kb).

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Address.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_RESOURCE_ADDRESS
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Dirección de sección crítica no válida.

Causa probable

Esta detención se genera si la aplicación intenta usar NULL o alguna otra dirección incorrecta (por ejemplo, una dirección en modo kernel) como dirección de un objeto válido. EnterCriticalSection(NULL) es una llamada API incorrecta que desencadenará este tipo de detención del comprobador. param1 es la dirección incorrecta usada y el culpable está en el seguimiento de la pila (mostrarla con kb).

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Address.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_CRITSECT_ADDRESS
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Intente ejecutar código en memoria no ejecutable.

Causa probable

Esta detención se genera si la aplicación está intentando ejecutar código desde una dirección que no es ejecutable o es gratuita. Para depurar esta parada: $ u parameter2 - para anular el código culpable $ .exr parameter3 - para mostrar la información de excepción; $ .cxr parameter4 seguido de kb: para mostrar la información de contexto de excepción y el seguimiento de la pila durante el momento en que se generó la excepción.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección a la que se accede.
  • Parámetro 2  - Código que realiza acceso no válido.
  • Parámetro 3  - Registro de excepción. Use .exr para mostrarlo.
  • Parámetro 4  - Registro de contexto. Use .cxr para mostrarlo.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  THREAD_UNEXPECTED_EXCEPTION_CODE
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Excepción inesperada generada al inicializar el búfer de salida.

Causa probable

Esta detención se genera si obtenemos una excepción al inicializar un búfer especificado como parámetro de salida para una API de Win32 o CRT. Normalmente, esto significa que el tamaño del búfer de salida especificado es incorrecto. Para depurar esta parada: $ .exr parameter3 - para mostrar la información de excepción; Parámetro $.cxr4 seguido de kb: para mostrar la información de contexto de excepción y el seguimiento de la pila en el momento en que se generó la excepción.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección de inicio del búfer.
  • Parámetro 2  - Tamaño del búfer.
  • Parámetro 3  - Registro de excepción. Use .exr para mostrarlo.
  • Parámetro 4  - Registro de contexto. Use .cxr para mostrarlo.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  OUTBUFF_UNEXPECTED_EXCEPTION
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Excepción inesperada al intentar encontrar el tamaño del bloque del montón.

Causa probable

Esta detención se genera si obtenemos una excepción al llamar a HeapSize para un bloque de montón que se está liberando. Normalmente, esto significa que la dirección de bloque del montón especificada es incorrecta o que el montón está dañado. Para depurar esta parada: $ .exr parameter3 - para mostrar el registro de excepción; Parámetro $.cxr4 seguido de kb: para mostrar la información de contexto de excepción y el seguimiento de la pila en el momento en que se generó la excepción.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección del bloque del montón que se libera.
  • Parámetro 2  - Identificador del montón.
  • Parámetro 3  - Registro de excepción. Use .exr para mostrarlo.
  • Parámetro 4  - Registro de contexto. Use .cxr para mostrarlo.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  SIZE_HEAP_UNEXPECTED_EXCEPTION
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Liberar el bloque de memoria con una dirección de inicio no válida.

Causa probable

Esta detención se genera si el programa llama a VirtualFree (MEM_RELEASE) con un parámetro lpAddress que no es la dirección base devuelta por la función VirtualAlloc o VirtualAllocEx cuando se reservó la región de páginas; Para depurar esta parada: $ kb : para mostrar el seguimiento de la pila actual, que llama a VirtualFree. El probable culpable es el archivo DLL que llama a VirtualFree.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección del bloque de memoria que se libera.
  • Parámetro 2  - Se esperaba una dirección de bloque de memoria correcta.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_FREEMEM_START_ADDRESS
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Desasignación del bloque de memoria con una dirección de inicio no válida.

Causa probable

Esta detención se genera si el programa llama a UnmapViewOfFile con un parámetro lpBaseAddress que no es idéntico al valor devuelto por una llamada anterior a la función MapViewOfFile o MapViewOfFileEx. Para depurar esta parada: $ kb : para mostrar el seguimiento de pila actual, que llama a UnmapViewOfFile. El probable culpable es el archivo DLL que llama a UnmapViewOfFile.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección del bloque de memoria que no se asigna.
  • Parámetro 2  - Se esperaba una dirección de bloque de memoria correcta.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  INVALID_UNMAPVIEW_START_ADDRESS
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

excepción inesperada generada en la función de devolución de llamada de grupo de subprocesos.

Causa probable

Esta detención se genera si una función de devolución de llamada en el subproceso de grupo de subprocesos genera una excepción. Para depurar esta parada: $parameter1 puede ser significativo para el tipo de excepción. Por ejemplo, un código de excepción C00000005 significa infracción de acceso. $ .exr parameter2: para mostrar la información de excepción. $ .cxr parameter3 seguido de kb: para mostrar la información de contexto de excepción.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Código de excepción
  • Parámetro 2  - Registro de excepción. Uso de .exr para mostrarlo
  • Parámetro 3  - Registro de contexto. Use .cxr para mostrarlo
  • Parámetro 4  - No se usa

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  THREADPOOL_UNEXPECTED_EXCEPTION
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

código en memoria no ejecutable

Causa probable

Esta detención se genera si la aplicación está intentando ejecutar código desde una dirección que no es ejecutable o es gratuita. Para depurar esta detención: $ u parameter2 - para anular el ensamblado del código culpable $ .exr parameter3 - para mostrar la información de excepción $ .cxr parameter4 seguido de kb - para mostrar la información de contexto de excepción y el seguimiento de la pila durante el momento en que se generó la excepción.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección a la que se accede
  • Parámetro 2  - Código que realiza acceso no válido
  • Parámetro 3  - Registro de excepción. Use .exr para mostrarlo.
  • Parámetro 4  - Registro de contexto. Use .cxr para mostrarlo.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  THREADPOOL_UNEXPECTED_EXCEPTION_CODE
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Creación del montón ejecutable.

Causa probable

Esta detención se genera si la aplicación crea un montón ejecutable. Esto puede suponer un riesgo para la seguridad.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - No se usa.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  EXECUTABLE_HEAP
  • Detener código:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Asignar memoria ejecutable.

Causa probable

Esta detención se genera si la aplicación asigna memoria ejecutable. Esto puede suponer un riesgo para la seguridad.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Protección de páginas especificada por el autor de la llamada.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Memoria
  • Id. de detención:  EXECUTABLE_MEMORY
  • Código de detención:  600NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Intente ejecutar código en memoria no ejecutable (primera oportunidad).

Causa probable

Esta detención se genera si la aplicación intenta ejecutar código desde una dirección que no es ejecutable o está libre. Para depurar esta parada: $ u parameter2 - para anular el ensamblado del código culpable $ .exr parameter3 - para mostrar la información de excepción; $ .cxr parameter4 seguido de kb: para mostrar la información de contexto de excepción y el seguimiento de la pila durante el momento en que se generó la excepción.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección a la que se accede.
  • Parámetro 2  - Código que realiza un acceso no válido.
  • Parámetro 3  - Registro de excepción. Use .exr para mostrarlo.
  • Parámetro 4  - Registro de contexto. Use .cxr para mostrarlo.

Información adicional
  • Capa de prueba:  Excepciones
  • Id. de detención:  FIRST_CHANCE_ACCESS_VIOLATION_CODE
  • Código de detención:  650NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Se ha cambiado la prioridad de este subproceso de grupo de subprocesos.

Causa probable

Esta detención se genera si se cambia la prioridad del subproceso cuando se devuelve a threadpool.

Información mostrada por el Comprobador de aplicaciones
  • Formato:  -  subproceso de grupo de subprocesos (%x) que ha ejecutado la devolución de llamada (%p) tiene una prioridad de subproceso modificada (%i -> %i)
  • Parámetro 1  - Callback (Función).
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - Prioridad actual.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  INCONSISTENT_PRIORITY
  • Código de detención:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Se ha cambiado la afinidad de este subproceso de grupo de subprocesos.

Causa probable

Esta detención se genera si se cambia la afinidad de subproceso cuando se devuelve a threadpool.

Información mostrada por el Comprobador de aplicaciones
  • Formato:  - threadpool thread (%x) having executed Callback (%p) has an altered thread affinity mask (%p -> %p)
  • Parámetro 1  - Callback (Función).
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - Afinidad actual.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  INCONSISTENT_AFFINITY_MASK
  • Código de detención:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Msg sin procesar en el grupo de mensajes del subproceso actual.

Causa probable

Esta detención se genera si se deja algún mensaje como no procesado cuando este subproceso de grupo de subprocesos se devuelve al grupo. Es peligroso, ya que se procesará en un contexto totalmente diferente. Use !avrf -tp <Param4> para ver los mensajes publicados en este subproceso.

Información mostrada por el Comprobador de aplicaciones
  • Formato:  - threadpool thread (%x) que ha ejecutado la devolución de llamada (%p) tiene un mensaje de ventana pendiente (%x: %x)
  • Parámetro 1  - Callback (Función).
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - Threadpool thread id. Use !avrf -tp <threadid> para ver los mensajes publicados en este subproceso.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  ORPHANED_THREAD_MESSAGE
  • Código de detención:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

La ventana sin cerrar pertenecía al subproceso actual.

Causa probable

Esta detención se genera si alguna ventana se mantiene activa cuando este subproceso de grupo de subprocesos se devuelve al grupo.

Información mostrada por el Comprobador de aplicaciones
  • Formato:  -  subproceso de grupo de subprocesos (%x) que ha ejecutado la devolución de llamada (%p) tiene un hwnd válido (%x: %s) que podría recibir mensajes.
  • Parámetro 1  - Callback (Función).
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - Threadpool thread id.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  ORPHANED_THREAD_WINDOW
  • Código de detención:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

ExitThread() en un subproceso de grupo de subprocesos.

Causa probable

Esta detención se genera si se llama a ExitThread en un subproceso de grupo de subprocesos. Está prohibido, ya que hará que el sistema sea inestable. Provocará fugas de recursos, inmovilizar o AV.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Callback function.
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  ILLEGAL_THREAD_EXIT
  • Detener código:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

El subproceso está en estado de suplantación cuando se devuelve a un subproceso de grupo de subprocesos.

Causa probable

Esta detención se genera si la función de devolución de llamada cambia el token de subproceso para suplantar a otro usuario y se olvida de restablecerla antes de devolverla al grupo de subprocesos.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Callback function.
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  THREAD_IN_IMPERSONATION
  • Detener código:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Se llama a una función que requiere un subproceso persistente.

Causa probable

Es necesario llamar a algunas API de Microsoft Windows dentro de un subproceso dedicado o persistente. En el grupo de subprocesos, normalmente debe evitar el uso del almacenamiento local de subprocesos y las llamadas asincrónicas que requieren un subproceso persistente, como la función RegNotifyChangeKeyValue. Sin embargo, estas funciones se pueden poner en cola en un subproceso de trabajo persistente mediante QueueUserWorkItem con la opción WT_EXECUTEINPERSISTENTTHREAD. Un kb en el depurador mostrará el autor de la llamada.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Callback function.
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  PERSISTED_THREAD_NEEDED
  • Detener código:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

El subproceso está en estado de transacción desfasado.

Causa probable

Esta detención se genera si la función de devolución de llamada olvidó cerrar o restablecer el identificador de transacción actual.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Callback function.
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - Identificador de transacción.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  DIRTY_TRANSACTION_CONTEXT
  • Detener código:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Este estado de threadpool tiene llamadas CoInit y CoUnInit desequilibradas.

Causa probable

Esta detención se genera si la función de devolución de llamada llama a CoInit y CoUnInit desequilibrada.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Callback function.
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  Recuentos  de llamadas equilibradas.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  DIRTY_COM_STATE
  • Detener código:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Los parámetros del objeto de temporizador son incoherentes. El período debe ser 0 cuando se especifica WT_EXECUTEONLYONCE al crear el temporizador

Causa probable

Esta detención se genera si el período para indicar que el temporizador no es cero cuando el temporizador se establece en señal solo una vez con la marca de WT_EXECUTEONLYONCE

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Period especificado.
  • Parámetro 2  - Flags especificados.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  INCONSISTENT_TIMER_PARAMS
  • Detener código:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

El subproceso del grupo de subprocesos ha mantenido el bloqueo del cargador dentro de la devolución de llamada.

Causa probable

Esta detención se genera si el bloqueo del cargador se mantiene dentro de la devolución de llamada y no se libera cuando se devuelve el subproceso al grupo de subprocesos.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Callback function.
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  LOADER_LOCK_HELD
  • Detener código:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

El idioma preferido lo establece el subproceso de grupo de subprocesos dentro de la devolución de llamada.

Causa probable

Esta detención se genera si el idioma preferido se establece dentro de la devolución de llamada y no se borra cuando se devuelve el subproceso al grupo de subprocesos.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Callback function.
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  PREFERRED_LANGUAGES_SET
  • Detener código:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

El subproceso de grupo de subprocesos establece la prioridad en segundo plano dentro de la devolución de llamada.

Causa probable

Esta detención se genera si la prioridad en segundo plano se establece dentro de la devolución de llamada y no está deshabilitada cuando el subproceso se devuelve al grupo de subprocesos.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Callback function.
  • Parámetro 2  - Context.
  • Parámetro 3  - Threadpool Seguimiento de la pila de asignación de objetos, use dps para volcarlo.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  BACKGROUND_PRIORITY_SET
  • Detener código:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

TerminateThread() en un subproceso de grupo de subprocesos.

Causa probable

Esta detención se genera si se llama a TerminateThread en un subproceso de grupo de subprocesos. Está prohibido, ya que hará que el sistema sea inestable. Provocará fugas de recursos, inmovilizar o AV.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - No se usa.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  Threadpool
  • Id. de detención:  ILLEGAL_THREAD_TERMINATION
  • Detener código:  700NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

La pila se desenredó cuando la operación de E/S asincrónica está pendiente.

Causa probable

Esta detención se genera si la aplicación emitió una operación de E/S que usa una variable de pila y no ha esperado a que se complete la E/S, lo que provoca daños en la pila. Para depurar esta parada: parámetro $ dps4 para mostrar el seguimiento de la pila cuando se emitió la E/S. Parameter1 indica la dirección basada en la pila y el parámetro3 el subproceso que emitió la E/S.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección de la variable de pila usada en la E/S.
  • Parámetro 2  - Puntero de pila actual.
  • Parámetro 3  - Subproceso original que emitió la E/S.
  • Parámetro 4  - Seguimiento de pila cuando se emitió la E/S.

Información adicional
  • Capa de prueba:  E/S
  • Id. de detención:  ASYNCIO_STACK_UNWIND
  • Detener código:  800NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

La pila estaba dañada cuando la operación de E/S asincrónica está pendiente.

Causa probable

Esta detención se genera si la aplicación emitió una operación de E/S que usa una variable de pila y no ha esperado a que se complete la E/S, lo que provoca daños en la pila. Para depurar esta parada: parámetro $ dps4 para mostrar el seguimiento de la pila cuando se emitió la E/S. Parameter1 indica la dirección basada en la pila y el parámetro3 el subproceso que emitió la E/S.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección de la variable de pila usada en la E/S.
  • Parámetro 2  - Puntero de pila actual.
  • Parámetro 3  - Subproceso original que emitió la E/S.
  • Parámetro 4  - Seguimiento de pila cuando se emitió la E/S.

Información adicional
  • Capa de prueba:  E/S
  • Id. de detención:  ASYNCIO_CORRUPTED_STACK
  • Detener código:  800NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Usar una dirección liberado en una operación de E/S pendiente.

Causa probable

Esta detención se genera si la aplicación emitió una operación de E/S y liberó la memoria usada en la E/S antes de que la E/S se completara, lo que provocaba daños en la memoria, etc. Para depurar esta parada: parámetro $ dps4 para mostrar el seguimiento de la pila cuando se emitió la E/S. Parameter1 indica la dirección usada en la E/S. Parameter2 indica que la dirección se libera y el parámetro3 el subproceso que emitió la E/S.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección usada en la E/S.
  • Parámetro 2  - Dirección que se libera.
  • Parámetro 3  - Subproceso original que emitió la E/S.
  • Parámetro 4  - Seguimiento de pila cuando se emitió la E/S.

Información adicional
  • Capa de prueba:  E/S
  • Id. de detención:  FREED_ADDRESS_IN_PENDINGIO
  • Detener código:  800NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Se reutiliza un bloque de estado de E/S (SUPERPUESTA) mientras la solicitud de E/S asociada sigue pendiente.

Causa probable

Esta detención se genera si la aplicación ha reutilizado un bloque de estado de E/S (SUPERPUESTA) mientras que una solicitud de E/S con ese bloque de estado de E/S (SUPERPUESTA) sigue pendiente. Para depurar esta parada: $dps parameter3 para mostrar el seguimiento de la pila cuando se emitió la E/S original. Parameter1 indica la dirección usada en la E/S y el parámetro2 el subproceso que emitió la E/S.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección del bloque de estado de E/S (SUPERPUESTO).
  • Parámetro 2  - Subproceso original que emitió la E/S.
  • Parámetro 3  - Seguimiento de pila cuando se emitió la E/S.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  E/S
  • Id. de detención:  REUSED_IOSTATUS_BLOCK
  • Detener código:  800NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Con una marca no admitida, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED en CreateFile

Causa probable

La versión anterior de MSDN documentó erróneamente CreateFile como compatible con FILE_ATTRIBUTE_NOT_CONTENT_INDEXED. Si esta marca está pensada, debe establecerse con otras funciones de API como SetFileAttributes. $ ln Parameter1 para buscar el autor de la llamada de CreateFile.

Información mostrada por Comprobador de aplicaciones
  • Formato:  -  CreateFile al escribir %hs%ws con marcas %08x %08x %08x %08x
  • Parámetro 1  - Return Address.
  • Parámetro 2  - No se usa.
  • Parámetro 3  - No se usa.
  • Parámetro 4  - No se usa.

Información adicional
  • Capa de prueba:  E/S
  • Id. de detención:  USING_BAD_CREATEFILE_FLAG
  • Detener código:  800NAN
  • Severidad:  Advertencia
  • Error único: 
  • Informe de errores:  Ninguno
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Se ha filtrado una asignación de montón.

Causa probable

Esta detención se genera si el archivo DLL del propietario de la asignación se descargó dinámicamente mientras posee recursos.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección de la asignación filtrada. Ejecute !heap -p -a <address> para obtener información adicional sobre la asignación.
  • Parámetro 2  - Dirección al seguimiento de la pila de asignación. Ejecute dps <address> para ver la pila de asignación.
  • Parámetro 3  - Dirección del nombre del archivo dll del propietario. Ejecute du <address> para leer el nombre del archivo DLL.
  • Parámetro 4  - Base del archivo dll del propietario. Ejecute .reload <dll_name> = <address> para volver a cargar el archivo dll del propietario. Use "lm" para obtener más información sobre los módulos cargados y descargados.

Información adicional
  • Capa de prueba:  Fuga
  • Id. de detención:  ASIGNACIÓN
  • Detener código:  900NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Se ha filtrado un IDENTIFICADOR.

Causa probable

Esta detención se genera si el archivo DLL del propietario del identificador se descargó dinámicamente mientras posee recursos. Para depurar esta detención: ejecute el parámetro !htrace1 para obtener información adicional sobre el identificador.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Valor del identificador filtrado. Ejecute el identificador> !htrace <para obtener información adicional sobre el identificador si está habilitado el seguimiento de identificadores.
  • Parámetro 2  - Dirección al seguimiento de la pila de asignación. Ejecute dps <address> para ver la pila de asignación.
  • Parámetro 3  - Dirección del nombre dll del propietario. Ejecute du <address> para leer el nombre del archivo DLL.
  • Parámetro 4  - Base del archivo dll del propietario. Ejecute .reload <dll_name> = <address> para volver a cargar el archivo DLL del propietario. Use "lm" para obtener más información sobre los módulos cargados y descargados.

Información adicional
  • Capa de prueba:  Fuga
  • Id. de detención:  MANEJAR
  • Código de detención:  900NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Se filtró un HKEY.

Causa probable

Esta detención se genera si el archivo DLL propietario de la clave del Registro se descargó dinámicamente mientras posee recursos.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Valor del HKEY filtrado.
  • Parámetro 2  - Dirección al seguimiento de la pila de asignación. Ejecute dps <address> para ver la pila de asignación.
  • Parámetro 3  - Dirección del nombre dll del propietario. Ejecute du <address> para leer el nombre del archivo DLL.
  • Parámetro 4  - Base del archivo dll del propietario. Ejecute .reload <dll_name> = <address> para volver a cargar el archivo DLL del propietario. Use "lm" para obtener más información sobre los módulos cargados y descargados.

Información adicional
  • Capa de prueba:  Fuga
  • Id. de detención:  REGISTRO
  • Código de detención:  900NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Se ha filtrado una reserva virtual.

Causa probable

Esta detención se genera si el archivo DLL propietario de la reserva virtual se descargó dinámicamente mientras posee recursos.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de reserva filtrada.
  • Parámetro 2  - Dirección al seguimiento de la pila de asignación. Ejecute dps <address> para ver la pila de asignación.
  • Parámetro 3  - Dirección del nombre dll del propietario. Ejecute du <address> para leer el nombre del archivo DLL.
  • Parámetro 4  - Base del archivo dll del propietario. Ejecute .reload <dll_name> = <address> para volver a cargar el archivo DLL del propietario. Use "lm" para obtener más información sobre los módulos cargados y descargados.

Información adicional
  • Capa de prueba:  Fuga
  • Id. de detención:  VIRTUAL_RESERVATION
  • Código de detención:  900NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

Se filtró un BSTR.

Causa probable

Esta detención se genera si el archivo DLL propietario de SysString se descargó dinámicamente mientras posee recursos.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección de la BSTR filtrada. Ejecute !heap -p -a <address> para obtener información adicional sobre la asignación.
  • Parámetro 2  - Dirección al seguimiento de la pila de asignación. Ejecute dps <address> para ver la pila de asignación.
  • Parámetro 3  - Dirección del nombre dll del propietario. Ejecute du <address> para leer el nombre del archivo DLL.
  • Parámetro 4  - Base del archivo dll del propietario. Ejecute .reload <dll_name> = <address> para volver a cargar el archivo DLL del propietario. Use "lm" para obtener más información sobre los módulos cargados y descargados.

Información adicional
  • Capa de prueba:  Fuga
  • Id. de detención:  SYSSTRING
  • Código de detención:  900NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear un seguimiento posterior:  Sí

No se anule el registro de una notificación de energía.

Causa probable

Esta detención se genera si el archivo DLL registrado para la notificación de energía y se descargó dinámicamente sin anular el registro.

Información mostrada por el Comprobador de aplicaciones
  • Parámetro 1  - Dirección del registro de notificaciones de energía.
  • Parámetro 2  - Dirección al seguimiento de la pila de registro. Ejecute dps <address> para ver la pila de asignación.
  • Parámetro 3  - Dirección del nombre dll del propietario. Ejecute du <address> para leer el nombre del archivo DLL.
  • Parámetro 4  - Base del archivo dll del propietario. Ejecute .reload <dll_name> = <address> para volver a cargar el archivo DLL del propietario. Use "lm" para obtener más información sobre los módulos cargados y descargados.

Información adicional
  • Capa de prueba:  Fuga
  • Id. de detención:  POWER_NOTIFICATION
  • Detener código:  900NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Se ha filtrado una asignación COM.

Causa probable

Esta detención se genera si el archivo DLL propietario de la asignación COM se descargó dinámicamente mientras posee recursos.

Información mostrada por Comprobador de aplicaciones
  • Parámetro 1  - Dirección de la asignación COM filtrada. Ejecute !heap -p -a <address> para obtener información adicional sobre la asignación.
  • Parámetro 2  - Dirección al seguimiento de la pila de asignación. Ejecute dps <address> para ver la pila de asignación.
  • Parámetro 3  - Dirección del nombre del archivo dll del propietario. Ejecute du <address> para leer el nombre del archivo DLL.
  • Parámetro 4  - Base del archivo dll del propietario. Ejecute .reload <dll_name> = <address> para volver a cargar el archivo dll del propietario. Use "lm" para obtener más información sobre los módulos cargados y descargados.

Información adicional
  • Capa de prueba:  Fuga
  • Id. de detención:  COM_ALLOCATION
  • Detener código:  900NAN
  • Severidad:  Error
  • Error único: 
  • Informe de errores:  Romper
  • Inicie sesión en el archivo:  Sí
  • Crear retroceso:  Sí

Consulte también

Comprobador de aplicaciones: códigos y definiciones de detención

Comprobador de aplicaciones: información general

Comprobador de aplicaciones: características

Comprobador de aplicaciones: pruebas de aplicaciones

Comprobador de aplicaciones: pruebas dentro del comprobador de aplicaciones

Comprobador de aplicaciones: depuración de las paradas del comprobador de aplicaciones

Comprobador de aplicaciones: preguntas más frecuentes