Τα Windows σταματούν το σφάλμα KMODE_EXCEPTION_NOT_HANDLED

Πριν προσδιορίσετε την αιτία αυτού του σφάλματος, πρέπει να προσδιορίσετε την εξαίρεση. Τρεις κοινοί κωδικοί εξαίρεσης είναι:

0x80000002 STATUS_DATATYPE_MISALIGNMENT .

Έγινε αναφορά αναφοράς μη ευθυγραμμισμένων δεδομένων.

0x80000003 STATUS_BREAKPOINT .

Παρουσιάστηκε ένα σημείο διακοπής ή ASSERT όταν δεν έχει επισυναφθεί κανένα πρόγραμμα εντοπισμού σφαλμάτων του πυρήνα στο σύστημα.

0xC0000005 STATUS_ACCESS_VIOLATION .

Παρουσιάστηκε παραβίαση πρόσβασης μνήμης.

Η παράμετρος 4 (παραπάνω) είναι η διεύθυνση που προσπάθησε να αποκτήσει ο οδηγός.

Μια πλήρης λίστα κωδικών εξαίρεσης βρίσκεται στο αρχείο ntstatus.h, στον κατάλογο inc του Κιτ προγραμμάτων οδήγησης των Windows.

Βασικές λειτουργίες αντιμετώπισης προβλημάτων και λύση

Σε πιο βασικό επίπεδο, θα πρέπει να ξεκινήσετε με αυτά τα βασικά βήματα αντιμετώπισης προβλημάτων.

  • Σε περίπτωση βλάβης του προγράμματος οδήγησης, απενεργοποιήστε το πρόγραμμα οδήγησης ή ελέγξτε για ενημερώσεις προγραμμάτων οδήγησης.
  • Δοκιμάστε να αλλάξετε την κάρτα οθόνης στον υπολογιστή, για να δείτε αν το πρόβλημα επιλύθηκε.
  • Ελέγξτε τον ιστότοπο του κατασκευαστή της μητρικής πλακέτας για μια ενημέρωση του BIOS.
  • Αποκτήστε πρόσβαση στο BIOS και απενεργοποιήστε την προσωρινή μνήμη ή τη σκίαση της μνήμης.

Εάν το ζήτημα δεν επιλυθεί, δοκιμάστε να συγκρίνετε κάθε πρόσφατα εγκατεστημένο υλικό στη λίστα προϊόντων Windows Marketplace Tested Products για να βεβαιωθείτε ότι είναι συμβατό με την έκδοση των Windows που διαθέτετε.

Εάν ένα πρόγραμμα οδήγησης συσκευής είναι ελαττωματικό, μπορεί να χρειαστεί να αποκτήσετε πρόσβαση στο περιβάλλον ασφαλούς λειτουργίας πατώντας το πλήκτρο F8 στο πληκτρολόγιο κατά την εκκίνηση του υπολογιστή σας (πριν εισέλθετε στα Windows). Επιλέξτε Ασφαλής λειτουργία από το μενού εκκίνησης όταν εμφανίζεται. Στην ασφαλή λειτουργία, μπορείτε να διαγράψετε το ελαττωματικό πρόγραμμα οδήγησης συσκευής και να επανεκκινήσετε τον υπολογιστή. Συνεχίστε με την εγκατάσταση ενός ενημερωμένου προγράμματος οδήγησης, αν είναι διαθέσιμο.

Μπορείτε επίσης να ελέγξετε το αρχείο καταγραφής συστήματος στο πρόγραμμα προβολής συμβάντων για να δείτε αν υπάρχουν μηνύματα σφάλματος. Αυτά τα μηνύματα σφάλματος μπορεί να σας βοηθήσουν να εντοπίσετε την πηγή του προβλήματος.

Σύνθετη αντιμετώπιση προβλημάτων

Επιπλέον, πιο σύνθετα βήματα αντιμετώπισης προβλημάτων μπορούν να ληφθούν εάν οι παραπάνω λύσεις δεν λύσουν το ζήτημα. Αυτά τα βήματα περιλαμβάνουν την πρόσβαση σε ένα ίχνος στοίβας για να προσδιορίσετε την αιτία του προβλήματος.

Για να λάβετε ένα ίχνος στοίβας, ακολουθήστε τα εξής βήματα:

  1. Εκτελέστε την εντολή kb ( Display Stack Backtrace ) για να εμφανίσετε τις παραμέτρους στο ίχνος της στοίβας. Αναζητήστε μια κλήση προς το NT! PspUnhandledExceptionInSystemThread.
  2. Η πρώτη παράμετρος στην κλήση δείχνει μια δομή, η οποία περιέχει επιπλέον δείκτες σε μια πρόταση εκτός:

    Εκτελέστε την εντολή dd ( μνήμη οθόνης ) στη διεύθυνση για να ανακτήσετε και να εμφανίσετε τις κατάλληλες πληροφορίες.

  3. Εκτελέστε τις εντολές .exr ( Εμφάνιση εξαίρεσης εγγραφής ) και .cxr ( Εμφάνιση πλαισίου εγγραφής ) χρησιμοποιώντας τις δύο τιμές που ανακτήθηκαν στο προηγούμενο βήμα ως τα επιχειρήματα για τις εντολές.
  4. Αφού εκτελέσετε την εντολή .cxr, χρησιμοποιήστε την εντολή kb για να δείτε την παρακολούθηση στοίβας βάσει των δεδομένων καταγραφής περιβάλλοντος. Το ίχνος της στοίβας θα υποδείξει πού προέκυψε η μη χειραψία εξαίρεση.

Αν δεν μπορείτε να βρείτε την κλήση στο Βήμα 1, αναζητήστε ntoskrnl! KiDispatchException . Χρησιμοποιώντας τη διεύθυνση πλαισίου παγίδας (την τρίτη παράμετρο), εκτελέστε την εντολή .trap ( προβολή πλαισίου καμπάνιας προβολής ) για να ορίσετε το πλαίσιο καταχώρησης στην κατάλληλη τιμή για να εκτελέσετε ίχνη στοίβας και άλλες εντολές.