Share via


Fehlerüberprüfung 0x76: PROCESS_HAS_LOCKED_PAGES

Die PROCESS_HAS_LOCKED_PAGES Fehlerüberprüfung hat den Wert 0x00000076. Diese Fehlerüberprüfung weist darauf hin, dass ein Treiber gesperrte Seiten nach einem E/A-Vorgang nicht freigeben konnte, oder dass er versucht hat, seiten zu entsperren, die bereits entsperrt wurden.

Wichtig

Dieser Artikel richtet sich an Programmierer. Wenn Sie ein Kunde sind, der während der Verwendung Ihres Computers einen Bluescreen-Fehlercode erhalten hat, finden Sie weitere Informationen unter Behandeln von Bluescreenfehlern.

PROCESS_HAS_LOCKED_PAGES Parameter

Parameter 1 Parameter 2 Parameter 3 Parameter 4 Fehlerursache

0x00

Der Zeiger auf das Prozessobjekt

Die Anzahl gesperrter Seiten

Der Zeiger auf Treiberstapel (sofern sie aktiviert sind). Andernfalls ist dieser Parameter 0.

Der beendete Prozess weist gesperrte Speicherseiten auf. Der Treiber muss alle Speicher entsperren, die er möglicherweise in einem Prozess gesperrt hat, bevor der Prozess beendet wird.

0x01

Vom Treiber angegebene MDL

Aktuelle Anzahl gesperrter Speicherseiten in diesem Prozess

Ein Zeiger auf Treiberstapel für diesen Prozess (sofern diese aktiviert sind). Andernfalls ist dieser Parameter 0.

Der Treiber versucht, Prozessspeicherseiten zu entsperren, die nicht gesperrt sind.

Ursache

Der Treiber konnte entweder nicht gesperrte Seiten entsperren (Parameter 1-Wert ist 0x0), oder der Treiber versucht, Seiten zu entsperren, die nicht gesperrt wurden oder die bereits entsperrt wurden (Parameter 1-Wert ist 0x1).

Lösung

Die Debugerweiterung !analyze zeigt Informationen zur Fehlerüberprüfung an und kann hilfreich sein, um die Grundursache zu ermitteln.

Wenn der Parameter 1-Wert 0x0

Verwenden Sie zunächst die Erweiterung !search für den aktuellen Prozesszeiger im gesamten physischen Arbeitsspeicher. Diese Erweiterung kann mindestens eine Speicherdeskriptorliste (Memory Descriptor List, MDL) finden, die auf den aktuellen Prozess verweist. Verwenden Sie als Nächstes !search für jede gefundene MDL, um das E/A-Anforderungspaket (IRP) abzurufen, das auf den aktuellen Prozess verweist. In diesem IRP können Sie ermitteln, welcher Treiber die Seiten ausläuft.

Andernfalls können Sie ermitteln, welcher Treiber den Fehler verursacht hat, indem Sie die Registrierung bearbeiten:

  1. Erstellen oder bearbeiten Sie im Registrierungsschlüssel \\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management den Wert TrackLockedPages , und legen Sie ihn dann auf DWORD 1 fest.

  2. Starten Sie den Computer neu.

Das System speichert dann Stapelablaufverfolgungen, sodass Sie den Treiber, der das Problem verursacht hat, leicht identifizieren können. Wenn der Treiber denselben Fehler erneut verursacht, wird die Fehlerüberprüfung 0xCB (DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS) ausgegeben, und der Name des Treibers, der diesen Fehler verursacht, wird auf dem bluescreen angezeigt und im Speicher an der Position (PUNICODE_STRING) KiBugCheckDriver gespeichert.

Wenn der Parameter 1-Wert 0x1

Untersuchen Sie den Treiberquellcode, der Arbeitsspeicher sperrt und entsperrt, und versuchen Sie, einen instance zu finden, in dem Arbeitsspeicher entsperrt wird, ohne zuvor gesperrt zu werden.