Motivo por el que se produjo la excepción. Este es el código generado por una excepción de hardware o el código especificado en la función RaiseException para una excepción generada por software. En las tablas siguientes se describen los códigos de excepción que es probable que se produzcan debido a errores comunes de programación.
Valor
Significado
EXCEPTION_ACCESS_VIOLATION
El subproceso intentó leer o escribir en una dirección virtual para la que no tiene el acceso adecuado.
EXCEPTION_ARRAY_BOUNDS_EXCEEDED
El subproceso intentó acceder a un elemento de matriz que está fuera de los límites y el hardware subyacente admite la comprobación de límites.
EXCEPTION_BREAKPOINT
Se encontró un punto de interrupción.
EXCEPTION_DATATYPE_MISALIGNMENT
El subproceso intentó leer o escribir datos que no están alineados en el hardware que no proporciona alineación. Por ejemplo, los valores de 16 bits deben alinearse en límites de 2 bytes; Valores de 32 bits en límites de 4 bytes, etc.
EXCEPTION_FLT_DENORMAL_OPERAND
Uno de los operandos de una operación de punto flotante es desnormal. Un valor desnormal es uno que es demasiado pequeño para representar como un valor de punto flotante estándar.
EXCEPTION_FLT_DIVIDE_BY_ZERO
El subproceso intentó dividir un valor de punto flotante por un divisor de punto flotante de cero.
EXCEPTION_FLT_INEXACT_RESULT
El resultado de una operación de punto flotante no se puede representar exactamente como una fracción decimal.
EXCEPTION_FLT_INVALID_OPERATION
Esta excepción representa cualquier excepción de punto flotante no incluida en esta lista.
EXCEPTION_FLT_OVERFLOW
El exponente de una operación de punto flotante es mayor que la magnitud permitida por el tipo correspondiente.
EXCEPTION_FLT_STACK_CHECK
Pila desbordada o subfluida como resultado de una operación de punto flotante.
EXCEPTION_FLT_UNDERFLOW
El exponente de una operación de punto flotante es menor que la magnitud permitida por el tipo correspondiente.
EXCEPTION_ILLEGAL_INSTRUCTION
El subproceso intentó ejecutar una instrucción no válida.
EXCEPTION_IN_PAGE_ERROR
El subproceso intentó acceder a una página que no estaba presente y el sistema no pudo cargar la página. Por ejemplo, esta excepción puede producirse si se pierde una conexión de red mientras se ejecuta un programa a través de la red.
EXCEPTION_INT_DIVIDE_BY_ZERO
El subproceso intentó dividir un valor entero por un divisor entero de cero.
EXCEPTION_INT_OVERFLOW
El resultado de una operación de entero provocó una realización del bit más significativo del resultado.
EXCEPTION_INVALID_DISPOSITION
Un controlador de excepciones devolvió una disposición no válida al distribuidor de excepciones. Los programadores que usen un lenguaje de alto nivel, como C, no deberían encontrarse nunca esta excepción.
EXCEPTION_NONCONTINUABLE_EXCEPTION
El subproceso intentó continuar la ejecución después de que se produjera una excepción no continuable.
EXCEPTION_PRIV_INSTRUCTION
El subproceso intentó ejecutar una instrucción cuya operación no está permitida en el modo de máquina actual.
EXCEPTION_SINGLE_STEP
Una captura de seguimiento u otro mecanismo de instrucción única señalizó que se ha ejecutado una instrucción.
EXCEPTION_STACK_OVERFLOW
El subproceso usó su pila.
Es probable que se produzca otro código de excepción al depurar procesos de consola. No surge debido a un error de programación. El código de excepción de DBG_CONTROL_C se produce cuando CTRL+C se escribe en un proceso de consola que controla las señales CTRL+C y se está depurando. Este código de excepción no está diseñado para ser controlado por las aplicaciones. Solo se genera para la ventaja del depurador y solo se genera cuando se adjunta un depurador al proceso de consola.
ExceptionFlags
Marcas de excepción. Este miembro puede ser cero, lo que indica una excepción continuable o EXCEPTION_NONCONTINUABLE que indica una excepción no continuable. Cualquier intento de continuar la ejecución después de una excepción no continua provoca la excepción EXCEPTION_NONCONTINUABLE_EXCEPTION .
ExceptionRecord
Puntero a una estructura de EXCEPTION_RECORD asociada. Los registros de excepciones se pueden encadenar juntos para proporcionar información adicional cuando se producen excepciones anidadas.
ExceptionAddress
Dirección donde se produjo la excepción.
NumberParameters
Número de parámetros asociados a la excepción. Este es el número de elementos definidos en la matriz ExceptionInformation .
Matriz de argumentos adicionales que describen la excepción. La función RaiseException puede especificar esta matriz de argumentos. Para la mayoría de los códigos de excepción, los elementos de matriz no están definidos. En la tabla siguiente se describen los códigos de excepción cuyos elementos de matriz se definen.
Código de excepción
Significado
EXCEPTION_ACCESS_VIOLATION
El primer elemento de la matriz contiene una marca de lectura y escritura que indica el tipo de operación que provocó la infracción de acceso. Si este valor es cero, el subproceso intentó leer los datos inaccesibles. Si este valor es 1, el subproceso intentó escribir en una dirección inaccesible.
Si este valor es 8, el subproceso provoca una infracción de prevención de ejecución de datos en modo de usuario (DEP).
El segundo elemento de matriz especifica la dirección virtual de los datos inaccesibles.
EXCEPTION_IN_PAGE_ERROR
El primer elemento de la matriz contiene una marca de lectura y escritura que indica el tipo de operación que provocó la infracción de acceso. Si este valor es cero, el subproceso intentó leer los datos inaccesibles. Si este valor es 1, el subproceso intentó escribir en una dirección inaccesible.
Si este valor es 8, el subproceso provoca una infracción de prevención de ejecución de datos en modo de usuario (DEP).
El segundo elemento de matriz especifica la dirección virtual de los datos inaccesibles.
El tercer elemento de matriz especifica el código NTSTATUS subyacente que dio lugar a la excepción.
Comentarios
Para habilitar un depurador para depurar un destino que se ejecuta en una arquitectura diferente (32 bits frente a 64 bits), use una de las formas explícitas de esta estructura.