Freigeben über


Fehlerüberprüfung 0x1: APC_INDEX_MISMATCH

Die APC_INDEX_MISMATCH Fehlerüberprüfung weist den Wert 0x00000001 auf. Die Fehlerüberprüfung weist auf einen Konflikt im Asynchronen Prozeduraufruf (APC)-Statusindex hin.

Wichtig

Dieser Artikel richtet sich an Programmierer*innen. Wenn Sie Microsoft-Kunde sind und auf Ihrem Computer ein Bluescreen-Fehlercode angezeigt wird, lesen Sie bitte Fehlerbehebung bei Bluescreen-Fehlern.

APC_INDEX_MISMATCH-Parameter

Parameter Beschreibung
1 Die Adresse der Systemfunktion (Systemaufruf) oder Arbeitsroutine.
2 Der Wert des ApcStateIndex-Felds des aktuellen Threads.
3 Der Wert des CombinedApcDisable-Felds des aktuellen Threads. Dieses Feld besteht aus zwei separaten 16-Bit-Feldern: (Thread>SpecialApcDisable<< 16) | Thread>KernelApcDisable.
4 Anruftyp:
0 - Systemaufruf
1 + Workerroutine

Ursache

Die häufigste Ursache dieser Fehlerüberprüfung ist, wenn ein Dateisystem oder Treiber eine nicht übereinstimmende Abfolge von Aufrufen zum Deaktivieren und Erneute Aktivieren von APCs aufweist. Das Schlüsseldatenelement ist das Thread>CombinedApcDisable-Feld. Das CombinedApcDisable-Feld besteht aus zwei separaten 16-Bit-Feldern: SpecialApcDisable und KernelApcDisable. Ein negativer Wert von beiden Feldern gibt an, dass ein Treiber spezielle oder normale APCs deaktiviert hat(n), ohne sie erneut zu aktivieren. Ein positiver Wert gibt an, dass ein Treiber spezielle oder normale APCs zu oft aktiviert hat.

Lösung

Sie können dieses Problem mithilfe von WinDbg oder mit grundlegenden Problembehandlungstechniken beheben.

Debuggen mithilfe von WinDbg

Die !analyze Debugerweiterung zeigt Informationen zur Fehlerüberprüfung an und kann Ihnen bei der Ermittlung der Ursache helfen.

Sie können die !apc-Erweiterung verwenden, um den Inhalt einer oder mehrerer APCs anzuzeigen.

Sie können auch einen Haltepunkt in dem Code festlegen, der diesem Stoppcode vorausgeht, und versuchen, in einem Schritt vorwärts in den fehlerhaften Code zu gelangen.

Weitere Informationen zur Verwendung von WinDbg finden Sie unter Absturzabbildanalyse mit den Windows-Debuggern (WinDbg).

Debuggen ohne Verwendung von WinDbg

Wenn Sie nicht mit dem Windows-Debugger ausgestattet sind, um dieses Problem zu beheben:

  • Suchen Sie in der Ereignisanzeige im Systemprotokoll nach weiteren Fehlermeldungen, die Ihnen dabei helfen können, das Gerät oder den Treiber zu identifizieren, das/der diese Fehlerüberprüfung verursacht.

  • Wenn in der Fehlerüberprüfungsmeldung ein Treiber angegeben ist, deaktivieren Sie den Treiber oder erkundigen Sie sich beim Hersteller nach Treiberupdates.

  • Bestätigen Sie, dass die neu installierte Hardware mit der installierten Windows-Version kompatibel ist. Informationen zur benötigten Hardware finden Sie beispielsweise unter Windows 10-Spezifikationen.

Weitere allgemeine Informationen zur Fehlerbehebung finden Sie unter Analysieren von Fehlerüberprüfungs-Bluescreen-Daten.

Hinweise

Diese Fehlerüberprüfung ist das Ergebnis eines internen Fehlers im Kernel. Dieser Fehler tritt beim Beenden eines Systemaufrufs auf. Eine mögliche Ursache für diese Fehlerüberprüfung ist ein Dateisystem oder Treiber, das über eine nicht übereinstimmende Abfolge von Systemaufrufen verfügt, um geschützte oder kritische Bereiche einzugeben oder zu verlassen. Beispielsweise muss jeder Aufruf von "KeEnterCriticalRegion " über einen übereinstimmenden Aufruf von "KeLeaveCriticalRegion" verfügen.

Wenn Sie einen Treiber entwickeln, können Sie Static Driver Verifier, ein statisches Analysetool, das im Windows Driver Kit verfügbar ist, verwenden, um Probleme in Ihrem Code zu erkennen, bevor Sie Ihren Treiber versenden. Führen Sie die Überprüfung statischer Treiber mit der CriticalRegions-Regel aus, um zu überprüfen, ob ihr Quellcode diese Systemaufrufe in korrekter Reihenfolge verwendet.

Siehe auch

Bug Check Code Reference (Referenz zu Fehlerüberprüfungscodes)