Delen via


Het foutbericht gebeurtenis-id 50 oplossen

Dit artikel helpt bij het oplossen van het foutbericht gebeurtenis-id 50.

Symptomen

Wanneer Windows gegevens naar de fysieke schijf schrijft, kunnen de volgende gebeurtenisberichten in het systeemlogboek worden vastgelegd:

Gebeurtenis-id: 50
Gebeurtenistype: waarschuwing
Gebeurtenisbron: Ftdisk
Beschrijving: {Lost Delayed-Write Data} Het systeem probeerde bestandsgegevens over te dragen van buffers naar \Device\HarddiskVolume4. De schrijfbewerking is mislukt en er zijn mogelijk slechts enkele gegevens naar het bestand geschreven.
Gegevens:
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

Gebeurtenis-id: 26
Gebeurtenistype: informatie
Gebeurtenisbron: pop-up van toepassing
Beschrijving: Windows - Vertraagd schrijven mislukt: Windows kan niet alle gegevens opslaan voor het bestand \Device\HarddiskVolume4\Program Files\Microsoft SQL Server\MSSQL$INSTANCETWO\LOG\ERRORLOG. De gegevens zijn verloren gegaan. Deze fout kan worden veroorzaakt door een storing in uw computerhardware of netwerkverbinding.

Probeer dit bestand ergens anders op te slaan.

Deze gebeurtenisberichten betekenen precies hetzelfde en worden om dezelfde redenen gegenereerd. Dit artikel is gericht op gebeurtenis-id 50.

Notitie

Het apparaat en pad in de beschrijving en de specifieke hexadecimale gegevens in deze berichten variëren, afhankelijk van de exacte omstandigheden die de gebeurtenis hebben veroorzaakt.

Meer informatie

Er zijn verschillende bronnen voor een gebeurtenis-id 50-bericht. Een gebeurtenis-id 50-bericht dat is vastgelegd vanuit een MRxSmb-bron, treedt bijvoorbeeld op als er een probleem is met de netwerkverbinding waarbij de omleiding is betrokken. In dit artikel worden gebeurtenis-id 50 berichten behandeld die verwijzen naar schijfschrijfproblemen. Controleer het bericht gebeurtenis-id 50 om te controleren of deze verwijst naar een schijfschrijfprobleem en of dit artikel van toepassing is.

In deze context registreert Windows een gebeurtenis-id 50-bericht als er een algemene fout optreedt wanneer Windows gegevens probeert te schrijven vanuit het bestandssysteemcachebeheer (niet de cache op hardwareniveau) naar de fysieke schijf. Dit schrijfgedrag, ook wel write-back of vertraagde schrijfcache genoemd, maakt deel uit van de geheugenbeheerfunctie van Windows. Caching van write-back verbetert de systeemprestaties. Fouten in de vertraagde schrijfbewerkingen kunnen echter leiden tot verlies van gegevens of volumeintegriteit.

Wanneer een toepassing een schrijfaanvraag naar Windows verzendt, slaat Cachebeheer de schrijfaanvraag en rapporten in de cache op bij de toepassing waarvoor de schrijfbewerking is geslaagd. Later schrijft CacheBeheer de gegevens naar de fysieke schijf en wist de cache. Als er een fout optreedt tijdens de schrijfbewerking, gaan de gegevens verloren wanneer cachebeheer de cache wist.

Toepassingen of processen die niet-kritieke gegevens schrijven, zoals logboekregistratieprocessen, gebruiken Cachebeheer om de algehele prestaties te verbeteren. Toepassingen die kritieke gegevens schrijven, zoals SQL Server, maken geen gebruik van Cachebeheer. Dergelijke toepassingen stellen een FILE_FLAG_NO_BUFFERING vlag in om te garanderen dat de transactie rechtstreeks naar de schijf wordt voltooid. Schrijfbewerkingen voor direct-to-disk genereren nooit gebeurtenis-id 50 berichten.

Een gebeurtenis-id 50-bericht is vergelijkbaar met een gebeurtenis-id 9 of een gebeurtenis-id 11-bericht. Hoewel de fout niet zo ernstig is als de fout die wordt aangegeven door het bericht gebeurtenis-id 9 of gebeurtenis-id 11, kunt u dezelfde technieken voor probleemoplossing gebruiken voor een gebeurtenis-id 50-bericht als voor een gebeurtenis-id 9 en een gebeurtenis-id 11-bericht. Vergeet echter niet dat alles wat zich in de stack voorschrijft, schrijfbewerkingen voor verloren vertraging kan veroorzaken, zoals filterstuurprogramma's en minipoortstuurprogramma's.

De voorbeeldgebeurtenis decoderen

De sectie Symptomen van dit artikel bevat het volgende voorbeeld van een gebeurtenis-id 50-bericht:

Gebeurtenis-id: 50
Gebeurtenistype: waarschuwing
Gebeurtenisbron: Ftdisk
Beschrijving: {Lost Delayed-Write Data} Het systeem probeerde bestandsgegevens over te dragen van buffers naar \Device\HarddiskVolume4. De schrijfbewerking is mislukt en er zijn mogelijk slechts enkele gegevens naar het bestand geschreven.
Gegevens:
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

De doelschijf identificeren

U kunt de schijf identificeren die het doel was van de schrijfbewerking met behulp van de symbolische koppeling die wordt vermeld voor het station in de sectie Beschrijving van het bericht van de gebeurtenis-id, bijvoorbeeld: \Device\HarddiskVolume4.

De gegevenssectie decoderen

Gebeurtenis-id 50 berichten (en ook gebeurtenis-id 9, 11, 51 of soortgelijke 'SCHIJF'-berichten) bevatten binaire gegevens die u kunt gebruiken om het probleem te identificeren. Het bericht bevat de volgende gegevenssectie:

Gegevens:
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

Notitie

Wanneer u de hexadecimale gegevens in het gebeurtenis-id-bericht naar de statuscode converteert, moet u er rekening mee houden dat de waarden worden weergegeven in de little-endian-indeling.

In de volgende tabel wordt beschreven wat elke verschuiving van dit bericht vertegenwoordigt.

OffsetLengthValues Lengte Waarden
0x00 2 Niet gebruikt.
0x02 2 Gegevensgrootte dumpen = 0x0004
0x04 2 Aantal tekenreeksen = 0x0002
0x06 2 Verschuiving naar de tekenreeksen
0x08 2 Gebeurteniscategorie
0x0c 4 Foutcode NTSTATUS
0x10 8 Niet gebruikt.
0x18 8 Niet gebruikt.
0x20 8 Niet gebruikt.
0x28 4 Foutcode NT-status

De foutcode NT-status

De laatste statuscode is het belangrijkste stukje informatie in een gebeurtenis-id 50-bericht. Dit is de foutcode die wordt geretourneerd wanneer de schrijfaanvraag wordt ingediend en dit is de belangrijkste bron van informatie. In het voorbeeld wordt de uiteindelijke statuscode vermeld op 0x28 op de zesde regel van de gegevensset. Begint met '0028:' en bevat de vier octetten in deze regel:

0028: 11 00 00 80

Wanneer u de hexadecimale gegevens in het gebeurtenis-id 50-bericht converteert naar de statuscode, moet u er rekening mee houden dat de waarden worden weergegeven in de little-endian-indeling. Omdat de statuscode het enige stukje informatie is waarin u geïnteresseerd bent, is het mogelijk gemakkelijker om de gegevens weer te geven in de WOORDEN-indeling in plaats van BYTES. Als u dit doet, hebben de bytes de juiste indeling en zijn de gegevens mogelijk gemakkelijker te interpreteren.

Als u de weergave van de gegevens wilt wijzigen, selecteert u Woorden in het venster Gebeurteniseigenschappen. In de weergave Gegevenswoorden wordt de gegevenssectie van het voorbeeld als volgt gelezen:

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

In dit geval wordt de uiteindelijke statuscode 0x80000011. Deze statuscode wordt toegewezen aan STATUS_DEVICE_BUSY en impliceert dat het apparaat momenteel bezet is. Dit was de reden dat de schrijfbewerking is mislukt.

Zie NTSTATUS-waarden gebruiken voor meer informatie over NT-statuscodes. De lijst met codes is ook beschikbaar in de Windows Software Developers Kit (SDK) in de NTSTATUS. H-bestand .

De code van de gebeurteniscategorie

In het voorbeeld wordt de code van de gebeurteniscategorie (de code die is gekoppeld aan gebeurtenis-id 50) vermeld op de tweede regel. Deze regel begint met '0008:' en bevat de laatste 4 bytes van de volgende regel:

0008: 00 00 00 00 32 00 04 80

In dit geval is de foutcode 0x80040032, die overeenkomt met IO_LOST_DELAYED_WRITE. Deze informatie wordt weergegeven in de beschrijving van de gebeurtenis als 'Verloren vertraagde schrijfgegevens'.