Stop 7F, 0x00000008 Fehler (doppelter Fehler) tritt aufgrund eines Ein-Bit-Fehlers im ESP-Register auf

Dieser Artikel bietet eine Lösung für eine STOP-0x0000007F, 0x00000008 Fehlermeldung auf Ihrem Computer aufgrund eines bestimmten Prozessorfehlers. Diese Fehlermeldung wird möglicherweise angezeigt, wenn ein Single-Bit-Fehler im ESP-Register eines Prozessors auftritt, der auf dem Computer ausgeführt wird.

Gilt für: Windows Server 2012 R2
Ursprüngliche KB-Nummer: 842465

Symptome

Auf einem Computer, auf dem mindestens ein Intel Xeon-Prozessoren ausgeführt wird oder auf dem andere Prozessoren ausgeführt werden, zeigt Windows möglicherweise eine Stopp-Fehlermeldung an, die dem folgenden Beispiel ähnelt:

STOP 0x0000007F (0x00000008, 0x00000000, 0x00000000, 0x00000000) UNEXPECTED_KERNEL_MODE_TRAP

Wenn dieses Problem auftritt, sind die folgenden Bedingungen erfüllt:

  • Der erste Parameter des Stoppfehlers ist "0x0000008". (Dieser Fehler ist eine Ausnahme mit doppeltem Fehler.)
  • Aufgrund eines Ein-Bit-Fehlers in der oberen Hälfte des ESP-Registers liegt der Wert im ESP-Register außerhalb des Stapelbereichs des aktuellen Threads.

Ursache

Dieses Problem tritt auf, wenn mindestens einer der Prozessoren auf dem Computer:

  • Fordern Sie ein Microcodeupdate an, das nicht vom BIOS (Basic Input/Output System) des Computers angewendet wird.

  • Sind beschädigt oder defekt.

  • Sie arbeiten außerhalb der angegebenen Bereiche für Temperatur, Leistung oder andere Bedingungen.

Lösung

Verwenden Sie eine der folgenden Problembehandlungsmethoden, um dieses Problem zu beheben.

Methode 1: Ermitteln, ob der Prozessor die Produktionsrevision des Microcodeupdates ausführt

Ein Microcodeupdate korrigiert Errata oder Fehler in der intern implementierten Logik eines Prozessors. Microcodeupdates können nicht dauerhaft im Prozessor selbst gespeichert werden und müssen bei jedem Start des Computers in den Prozessor geladen werden. Microcodeupdates können vom BIOS des Computers oder vom Update.sys-Treiber angewendet werden.

Führen Sie die folgenden Schritte aus, um die Revision des Microcodeupdates zu ermitteln, das derzeit auf einen Intel-Prozessor angewendet wird, der auf Ihrem Computer installiert ist:

  1. Laden Sie das Intel Processor Identification Utility herunter.

  2. Installieren Sie das Intel Processor Identification Utility auf dem Computer, auf dem Symptome auftreten, und führen Sie es aus.

  3. Notieren Sie sich die folgenden CPU-Informationen für jeden Prozessor:

    • CPU-Familie
    • CPU-Modell
    • CPU-Schrittweises Ausführen
    • CPU-Revision

    Die Werte für CPU-Familie, CPU-Modell und CPU-Schrittweises Ausführen identifizieren den spezifischen Prozessortyp. Der Wert CPU Revision gibt die Revision des angewendeten Microcodeupdates an.

  4. Wenden Sie sich an den Computerhersteller, um zu ermitteln, ob die Revision des Microcodeupdates die aktuellste Revision ist, die für einen bestimmten Prozessor verfügbar ist. Wenn die Revision nicht die aktuellste ist, bitten Sie Ihren Computerhersteller um ein aktualisiertes BIOS, das die aktuellste Revision des Microcodeupdates anwendet.

Die in diesem Artikel beschriebenen Symptome wurden am häufigsten auf Intel Xeon-Prozessoren beobachtet, die die Werte für CPU-Familie, CPU-Modell und CPU-Schritt 15, 2 bzw. 9 aufweisen und auf Motherboards installiert sind, die ServerWorks-Chipsätze verwenden. (Die Hexadezimalwerte für CPU-Familie, CPU-Modell und CPU-Schrittausführung sind F, 2 bzw. 9.) Diese Prozessoren erfordern einen Revisionswert von 0x18 oder höher, um ordnungsgemäß zu funktionieren. (0x18 entspricht einem Dezimalwert von 24.)

Der Revisionswert 0 gibt an, dass das Computer-BIOS nicht über das richtige Microcodeupdate für die Prozessoren verfügt, die auf dem Computer installiert sind. Sie müssen das BIOS mit einer Microcodeupdaterevision aktualisieren, die die von Ihnen verwendeten Prozessoren unterstützt.

Intel empfiehlt, die neuesten Microcodeupdaterevisionen anzuwenden, um bekannte Probleme zu vermeiden.

Methode 2: Ermitteln, ob ein Prozessor beschädigt oder defekt ist

Wenn auf die Prozessoren, die auf den betroffenen Computern installiert sind, die Revision des Microcodeupdates für die Produktion angewendet wurde und die in diesem Artikel beschriebenen Symptome nicht auf allen Computern desselben Modells auftreten, auf denen die gleichen Prozessoren ausgeführt werden, sind die Prozessoren möglicherweise fehlerhaft.

Um festzustellen, ob ein Prozessor beschädigt oder defekt ist, verschieben Sie den Prozessor auf einen Computer, bei dem keine Symptome auftreten.

Warnung

Wenn Sie die Prozessoren wechseln, befolgen Sie die Anweisungen ihres Computerherstellers, oder wenden Sie sich an entsprechend qualifizierte Hardwaretechniker, um die Prozessoren zu ändern.

Wenn die Symptome weiterhin auf dem ursprünglichen Computer mit dem Ersatzprozessor auftreten, aber nicht auf dem anderen Computer mit dem ursprünglichen Prozessor, wird das Problem wahrscheinlich nicht durch einen beschädigten oder defekten Prozessor verursacht.

Wenn die Symptome nicht weiterhin auf dem ursprünglichen Computer mit dem Ersatzprozessor auftreten, sondern auf dem anderen Computer mit dem ursprünglichen Prozessor, wird das Problem wahrscheinlich durch einen beschädigten oder defekten Prozessor verursacht. Wenden Sie sich in diesem Fall an den Computerhersteller, um den ursprünglichen Prozessor zu ersetzen.

Wenn der Computer, auf dem die in diesem Artikel beschriebenen Symptome auftreten, mehr als ein Prozessor aufweist, verschieben Sie alle Prozessoren auf den anderen Computer. Wenn die Ergebnisse darauf hindeuten, dass einer oder mehrere dieser Prozessoren fehlerhaft sein können, verschieben Sie die Prozessoren einzeln, um den oder die Prozessoren zu ermitteln, die möglicherweise fehlerhaft sind.

Methode 3: Ermitteln, ob ein Prozessor außerhalb eines angegebenen Bereichs von Umgebungsbedingungen arbeitet

Übermäßige Raumtemperatur, schlechte Belüftung oder Staubansammlung können dazu führen, dass sich elektronische Komponenten wie Prozessoren fehlerhaft verhalten. Fehlerhafte Lüfter oder verstopfte Luftdurchgänge können zu Belüftungsproblemen führen. Wenn der Innenraum oder die Luftdurchgänge des Computers staubig sind oder wenn der Computer Symptome aufweist, wenn er nur an einem bestimmten Ort installiert ist, kann eine Überhitzung des Systems ein Faktor sein. Stellen Sie sicher, dass die Komponenten sauber sind, dass Lüfter ordnungsgemäß funktionieren und die Luftdurchgänge nicht blockiert werden. Stellen Sie außerdem sicher, dass der Raum, in dem sich der Computer befindet, ausreichend belüftet ist. Die Temperatur des Raumes muss in dem vom Computerhersteller angegebenen Betriebsbereich liegen.

Spannung, die höher oder niedriger als angegeben ist oder schwankt, kann dazu führen, dass sich Prozessoren und andere elektronische Komponenten falsch verhalten. Falsche oder inkonsistente Standard Stromspannung, eine überladene oder nicht ordnungsgemäß funktionierende Stromversorgung im Computer oder nicht ordnungsgemäß funktionierende Hauptplatinenschaltungen können dazu führen, dass dem Prozessor falsche oder inkonsistente Spannung zugeführt wird. Wenden Sie sich an die entsprechenden Techniker, um zu überprüfen, ob eines dieser Probleme die Ursache von Symptomen sein kann.

Weitere Informationen

Weitere Informationen zu STOP 0x0000007F-Fehlern finden Sie unter 0x0000007F Stoppfehler auf einem Windows-basierten Computer.

Das ESP-Register wird auch als Stapelzeigerregister bezeichnet. Ein Stapel ist eine Datenstruktur im Arbeitsspeicher, die zum Speichern von Informationen über den aktuellen Zustand der Ausführung eines Threads verwendet wird. Der Stapel eines Threads wird verwendet, um laufende Funktionsaufrufe, Parameter, die an diese Funktionen übergeben werden, und von Variablen, die von diesen Funktionen verwendet werden, nachzuverfolgen. Es wird erwartet, dass der Wert im ESP-Register auf den aktuellen anfang des Stapels verweist. Wenn der Wert in ESP falsch ist, kann er auf falsche Informationen oder auf eine ungültige Adresse verweisen. Wenn der Wert in ESP auf eine ungültige Adresse verweist, kann eine Ausnahme mit doppeltem Fehler auftreten.

Führen Sie die folgenden Schritte aus, um zu ermitteln, ob der Stoppfehler das Ergebnis eines Single-Bit-Fehlers im ESP-Register ist:

  1. Installieren Sie die Microsoft Debugging Tools für Windows.

  2. Führen Sie das WinDbg-Tool aus, wählen Sie Datei aus, wählen Sie Absturzabbild öffnen aus, um die Speicherabbilddatei zu suchen, die die Fehlerinformationen zum Beenden enthält, und wählen Sie dann OK aus.

  3. Führen Sie den !analyze -v Befehl aus, um eine automatisierte Analyse der Speicherabbilddatei zu erhalten.

  4. Überprüfen Sie die Ausgabe des !analyze -v Befehls, um festzustellen, ob die Ausgabe eine Doppelte Fehlerbedingung anzeigt. Wenn eine Bedingung mit doppeltem Fehler vorhanden ist, führen Sie den .tss 28 Befehl aus, um den Systemzustand zum Zeitpunkt des doppelten Fehlers anzuzeigen. Im Allgemeinen liegt dieser Wert relativ nahe am Wert des EBP-Registers.

  5. Führen Sie den !thread Befehl aus, um den Stapelbereich des aktuellen Threads anzuzeigen. Eine Ausnahme mit doppeltem Fehler tritt in der Regel auf, wenn der Wert des ESP-Registers außerhalb des Adressbereichs liegt, der für den Stapel für den aktuellen Thread reserviert ist.

    Wenn dieser bestimmte Thread ausgeführt wird, muss der ESP-Registerwert immer zwischen dem Stack Base-Wert (f5d2a000) und dem Grenzwert (f5d27000) liegen. Im Allgemeinen liegt der Wert des ESP-Registers relativ nahe am aktuellen Wert (f5d29c9c). (Der aktuelle Wert liegt auch zwischen dem Stack Base-Wert und dem Grenzwert.)

    Möglicherweise können Sie auch die Stapelbereichswerte überprüfen, indem Sie den !pcr Befehl ausführen.

    Der NtTib.StackLimit Wert stellt die untere Grenze des Stapelbereichs dar. Der NtTib.StackBase Wert stellt einen aktuellen Wert von ESP dar. Der NtTib.StackBase Wert kann mit dem aktuellen Wert des ESP-Registers verglichen werden, um zu ermitteln, ob ein Single-Bit-Fehler im aktuellen ESP-Registerwert vorliegt.

  6. Führen Sie den .formats esp ^ ebp Befehl aus, um die Unterschiede in den Werten zwischen den ESP- und EBP-Registern anzuzeigen. Der Stapelzeigerwert im EBP-Register befindet sich in der Nähe des Stapelzeigerwerts im ESP-Register, mit Ausnahme des Single-Bit-Fehlers. Dieser Befehl zeigt häufig das einzelne high-order-Bit an, das den Fehler enthält, insbesondere, wenn der Fehler im Binärformat angezeigt wird.

    Wenn Sie die unteren, am wenigsten signifikanten Ziffern ignorieren, beträgt der Einzelbitunterschied zwischen den ESP- und EBP-Registern 000000000 00000100000 00000000 im Binärformat. Der Unterschied ist 00080000 im Hexadezimalformat.

    Dieser Ein-Bit-Fehler führt dazu, dass das ESP-Register einen falschen Wert enthält. Der falsche Wert verursacht eine Ausnahme mit doppeltem Fehler, eine Fehlerprüfung und einen Systemabsturz.

Führen Sie die folgenden Schritte aus, um weitere Informationen zu Ihrer spezifischen Hardware zu erhalten:

  1. Verwenden Sie den !cpuinfo Befehl , um INFORMATIONEN zur CPU-Version abzurufen.

    Obwohl der Wert "Signatur aktualisieren " möglicherweise nicht immer genau gemeldet wird, wenn Sie eine Absturzabbilddatei analysieren, gibt das Feld Signatur aktualisieren im Allgemeinen die Microcodeupdaterevision an, die auf die CPU angewendet wird.

  2. Verwenden Sie den !pcitree Befehl, um die Hersteller- und Geräte-IDs (VenDev-IDs) für vorhandene PCI-Geräte (Peripheral Connect Interface) zu suchen.

    Für jedes aufgeführte PCI-Gerät ist der erste 8-stellige Hexadezimalwert (DWORD) in jeder Zeile die VenDev-ID. Die Anbieter-ID ist tatsächlich die zweiten vier Ziffern dieses Werts. Das erste aufgeführte Gerät weist beispielsweise die VenDev-ID 0x00141166 auf. Die Geräte-ID wird 0x0014, und die Anbieter-ID ist 0x1166. Die Anbieter-ID für ServerWorks ist 0x1166. Diese Ausgabe stammt also von einem Prozessor, der auf einer Hauptplatine installiert ist, die ServerWorks-Chipsätze verwendet.

Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.