2011-06-08 8 views
6

Hace mucho tiempo que transpusimos con éxito nuestro controlador a sistemas de 64 bits.Llamada de comprobación de fallos de Windows no solicitada en sistemas de 64 bits

Pero falta una cosa, que no es muy importante, pero fue una función de depuración muy práctica.

Nunca se invocan las devoluciones de llamadas registradas con KeRegisterBugCheckReasonCallback. La función devuelve un VERDADERO para tener éxito, pero mi devolución de llamada nunca se llama. También probé valores diferentes para la razón del parámetro sin éxito. Una prueba con el KeRegisterBugCheckCallback anterior también falló.

¿Qué estoy haciendo mal?

¿Perdí algo en la documentación?

+0

Google parece que debería funcionar. ¯ \ (° _o)/¯ lo intenté. –

+0

No encontré ninguna fuente que sea específica de Windows x64, ya sea 'antigua' una vez, antes de x64 o genérica. Y mi experiencia es que las devoluciones de llamada simplemente no se llaman. – ConfusedSushi

Respuesta

1

Encontré el problema.

Windows solo llama a las devoluciones de llamada si la correspondiente KBUGCHECK_CALLBACK_RECORD está alineada con una dirección de 8 bytes.

Por alguna razón, el mío estaba alineado con direcciones de 4 bytes.

Es un fastidio que KeRegisterBugCheckReasonCallback no compruebe esto.

Cuestiones relacionadas