Problembehandlung bei der Fehlermeldung "Ereignis-ID 50"

Dieser Artikel hilft bei der Problembehandlung bei der Fehlermeldung "Ereignis-ID 50".

Symptome

Wenn Windows Informationen auf den physischen Datenträger schreibt, werden möglicherweise die folgenden Ereignismeldungen im Systemprotokoll protokolliert:

Ereignis-ID: 50
Ereignistyp: Warnung
Ereignisquelle: Ftdisk
Beschreibung: {Lost Delayed-Write Data} Das System hat versucht, Dateidaten aus Puffern an \Device\HarddiskVolume4 zu übertragen. Fehler beim Schreibvorgang, und nur einige der Daten wurden möglicherweise in die Datei geschrieben.
Daten:
0000: 00 00 04 00 02 00 56 00
0008: 00 00 00 00 32 00 04 80
0010: 00 00 00 00 00 00 00 00
0018: 00 00 00 00 00 00 00 00
0020: 00 00 00 00 00 00 00 00
0028: 11 00 00 80

Ereignis-ID: 26
Ereignistyp: Information
Ereignisquelle: Anwendungs-Popup
Beschreibung: Windows – Verzögerter Schreibfehler: Windows konnte nicht alle Daten für die Datei \Device\HarddiskVolume4\Programme\Microsoft SQL Server\MSSQL$INSTANCETWO\LOG\ERRORLOG speichern. Die Daten sind verloren gegangen. Dieser Fehler kann durch einen Fehler der Computerhardware oder Netzwerkverbindung verursacht werden.

Versuchen Sie, diese Datei an anderer Stelle zu speichern.

Diese Ereignismeldungen bedeuten genau dasselbe und werden aus den gleichen Gründen generiert. Dieser Artikel konzentriert sich auf die Ereignis-ID 50.

Hinweis

Das Gerät und der Pfad in der Beschreibung sowie die spezifischen Hexadezimaldaten in diesen Nachrichten variieren je nach den genauen Umständen, die das Ereignis verursacht haben.

Weitere Informationen

Es gibt mehrere verschiedene Quellen für eine Ereignis-ID 50-Nachricht. Beispielsweise tritt eine Ereignis-ID 50-Nachricht auf, die von einer MRxSmb-Quelle protokolliert wird, wenn ein Netzwerkkonnektivitätsproblem vorliegt, das den Umleitungsor betrifft. In diesem Artikel werden Meldungen der Ereignis-ID 50 behandelt, die sich auf Probleme beim Schreiben von Datenträgern beziehen. Überprüfen Sie die Ereignis-ID 50-Nachricht, um zu überprüfen, ob sie sich auf ein Datenträgerschreibproblem bezieht und dass dieser Artikel gilt.

In diesem Kontext protokolliert Windows eine Ereignis-ID 50-Meldung, wenn ein allgemeiner Fehler auftritt, wenn Windows versucht, Informationen aus dem Cache-Manager des Dateisystems (nicht aus dem Cache auf Hardwareebene) auf den physischen Datenträger zu schreiben. Dieses Schreibverhalten, das als Zurückschreiben oder verzögertes Zwischenspeichern von Schreibvorgängen bezeichnet wird, ist Teil der Speicherverwaltungsfunktion von Windows. Das Zwischenspeichern von Rückschreibvorgängen verbessert die Systemleistung. Fehler bei verzögerten Schreibvorgängen können jedoch zu einem Verlust der Daten- oder Volumeintegrität führen.

Wenn eine Anwendung eine Schreibanforderung an Windows sendet, speichert der Cache-Manager in der Regel die Schreibanforderung zwischen und meldet der Anwendung, dass der Schreibvorgang erfolgreich war. Später schreibt der Cache-Manager die Daten auf den physischen Datenträger und löscht dann den Cache. Wenn während des Schreibvorgangs ein Fehler auftritt, gehen die Daten verloren, wenn der Cache-Manager den Cache löscht.

Anwendungen oder Prozesse, die nicht kritische Daten schreiben, z. B. Protokollierungsprozesse, verwenden den Cache-Manager, um die Gesamtleistung zu verbessern. Anwendungen, die kritische Daten schreiben, z. B. SQL Server, verwenden den Cache-Manager nicht. Solche Anwendungen legen ein FILE_FLAG_NO_BUFFERING Flag fest, um sicherzustellen, dass die Transaktion direkt auf dem Datenträger abgeschlossen wird. Direct-to-Disk-Schreibvorgänge generieren niemals Ereignis-ID 50-Nachrichten.

Eine Ereignis-ID 50-Nachricht ähnelt einer Ereignis-ID 9 oder einer Ereignis-ID 11-Nachricht. Obwohl der Fehler nicht so schwerwiegend ist wie der Fehler, der durch die Meldung ereignis-ID 9 oder Ereignis-ID 11 angegeben wird, können Sie die gleichen Problembehandlungstechniken für eine Ereignis-ID 50-Nachricht wie für eine Ereignis-ID 9- und eine Ereignis-ID 11-Nachricht verwenden. Denken Sie jedoch daran, dass alles, was sich im Stapel befindet, zu schreibverzögerten Schreibvorgängen führen kann, z. B. Filtertreiber und Miniporttreiber.

Decodieren des Beispielereignisses

Der Abschnitt Symptome dieses Artikels enthält das folgende Beispiel für eine Ereignis-ID 50-Nachricht:

Ereignis-ID: 50
Ereignistyp: Warnung
Ereignisquelle: Ftdisk
Beschreibung: {Lost Delayed-Write Data} Das System hat versucht, Dateidaten aus Puffern an \Device\HarddiskVolume4 zu übertragen. Fehler beim Schreibvorgang, und nur einige der Daten wurden möglicherweise in die Datei geschrieben.
Daten:
0000: 00 00 04 00 02 00 56 00
0008: 00 00 00 00 32 00 04 80
0010: 00 00 00 00 00 00 00 00
0018: 00 00 00 00 00 00 00 00
0020: 00 00 00 00 00 00 00 00
0028: 11 00 00 80

Identifizieren des Zieldatenträgers

Sie können den Datenträger identifizieren, der das Ziel des Schreibvorgangs war, indem Sie den symbolischen Link verwenden, der für das Laufwerk im Abschnitt "Beschreibung" der Ereignis-ID-Nachricht aufgeführt ist, z. B.: \Device\HarddiskVolume4.

Decodieren des Datenabschnitts

Ereignis-ID 50-Nachrichten (und auch Ereignis-ID 9, 11, 51 oder ähnliche "DISK"-Nachrichten) enthalten Binärdaten, mit denen Sie das Problem identifizieren können. Die Meldung enthält den folgenden Datenabschnitt:

Daten:
0000: 00 00 04 00 02 00 56 00
0008: 00 00 00 00 32 00 04 80
0010: 00 00 00 00 00 00 00 00
0018: 00 00 00 00 00 00 00 00
0020: 00 00 00 00 00 00 00 00
0028: 11 00 00 80

Hinweis

Wenn Sie die hexadezimalen Daten in der Ereignis-ID-Nachricht in den status Code konvertieren, denken Sie daran, dass die Werte im Little-Endian-Format dargestellt werden.

In der folgenden Tabelle wird beschrieben, was jeder Offset dieser Nachricht darstellt.

OffsetLengthValues Länge Werte
0x00 2 Nicht verwendet
0x02 2 Speicherabbilddatengröße = 0x0004
0x04 2 Anzahl von Zeichenfolgen = 0x0002
0x06 2 Offset zu den Zeichenfolgen
0x08 2 Ereigniskategorie
0x0c 4 NTSTATUS-Fehlercode
0x10 8 Nicht verwendet
0x18 8 Nicht verwendet
0x20 8 Nicht verwendet
0x28 4 NT-Statusfehlercode

Nt-Status-Fehlercode

Die letzte status Code ist die wichtigste Information in einer Ereignis-ID 50-Nachricht. Dies ist der Fehlercode, der zurückgegeben wird, wenn die Schreibanforderung gestellt wird, und dies ist die wichtigste Informationsquelle. Im Beispiel wird der endgültige status Code unter 0x28 in der sechsten Zeile des Datasets aufgeführt. In beginnt mit "0028:" und enthält die vier Oktette in dieser Zeile:

0028: 11 00 00 80

Wenn Sie die hexadezimalen Daten in der Ereignis-ID 50-Nachricht in den status Code konvertieren, denken Sie daran, dass die Werte im Little-Endian-Format dargestellt werden. Da der status Code die einzige Information ist, an der Sie interessiert sind, ist es möglicherweise einfacher, die Daten im WORDS-Format anstelle von BYTES anzuzeigen. Wenn Sie dies tun, haben die Bytes das richtige Format, und die Daten sind möglicherweise leichter schnell zu interpretieren.

Um die Ansicht der Daten zu ändern, wählen Sie wörter im Fenster Ereigniseigenschaften aus. In der Ansicht Datenwörter lautet der Datenabschnitt des Beispiels wie folgt:

() Bytes (.) 
Words 0000: 00040000 00560002 00000000 80040032 0010: 00000000 00000000 00000000 00000000 0020: 00000000 00000000 80000011

In diesem Fall wird der endgültige status Code 0x80000011. Dieser status Code wird zugeordnet STATUS_DEVICE_BUSY und impliziert, dass das Gerät derzeit ausgelastet ist. Dies war der Grund, warum der Schreibvorgang fehlgeschlagen ist.

Weitere Informationen zu NT status-Codes finden Sie unter Verwenden von NTSTATUS-Werten. Die Liste der Codes ist auch im Windows Software Developers Kit (SDK) im NTSTATUS verfügbar. H-Datei .

Der Ereigniskategoriecode

In diesem Beispiel wird der Ereigniskategoriecode (der Der Ereignis-ID 50 zugeordnete Code) in der zweiten Zeile aufgeführt. Diese Zeile beginnt mit "0008:" und enthält die letzten 4 Bytes der folgenden Zeile:

0008: 00 00 00 00 32 00 04 80

In diesem Fall ist der Fehlercode 0x80040032, was entspricht IO_LOST_DELAYED_WRITE. Diese Informationen werden in der Ereignisbeschreibung als "Verlorene Delayed-Write Daten" angezeigt.