Freigeben über


IOCTL_STORAGE_PREDICT_FAILURE IOCTL (ntddstor.h)

Fragt nach einer Vorhersage des Gerätefehlers ab. Diese Anforderung funktioniert mit den IDE-Festplattenlaufwerken, die die Selbstüberwachungsanalyse und Berichterstellungstechnologie (SMART) unterstützen. Wenn das Laufwerk ein SCSI-Laufwerk ist, versucht der Klassentreiber zu überprüfen, ob der SCSI-Datenträger die entsprechende IDE SMART-Technologie unterstützt, indem die Untersuchungsinformationen auf der Seite zur Informationsausnahmesteuerung, X3T10/94-190 Rev 4, überprüft werden.

Wenn das Gerät Vorhersagefehler unterstützt, fragt der Datenträgerklassentreiber das Gerät nach dem Status der Fehlervorhersage ab und meldet die Ergebnisse. Wenn der Datenträgerklassentreiber dem PredictFailure Member von STORAGE_PREDICT_FAILURE im Ausgabepuffer bei Irp->AssociatedIrp.SystemBuffereinen Ungleichwert zuweist, weist der Datenträger fehlerhafte Sektoren auf und prognostiziert einen Fehler. Der Speicherstapel gibt 512 Byte anbieterspezifische Informationen zur Fehlervorhersage im VendorSpecific- Mitglied von STORAGE_PREDICT_FAILURE zurück.

Wenn das PredictFailure Member einen Wert von Null enthält, wird kein Fehler vom Datenträger vorhergesagt.

Wenn das Gerät die Fehlervorhersage nicht unterstützt, schlägt IOCTL_STORAGE_PREDICT_FAILURE mit einem Status von STATUS_INVALID_DEVICE_REQUEST fehl, und die Daten im Ausgabepuffer sind nicht definiert.

Andere Methoden zum Überprüfen auf Datenträgerfehler sind die Überwachung des Ereignisprotokolls und die Registrierung zum Empfangen eines WMI-Ereignisses mit WMI_STORAGE_PREDICT_FAILURE_EVENT_GUID.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Nichts.

Eingabepufferlänge

Nichts.

Ausgabepuffer

Der Treiber gibt eine STORAGE_PREDICT_FAILURE Struktur zurück, die Fehlervorhersagedaten im Puffer bei Irp->AssociatedIrp.SystemBufferenthält.

Länge des Ausgabepuffers

Parameters.DeviceIoControl.OutputBufferLength gibt die Größe des Puffers bei Irp->AssociatedIrp.SystemBuffer an, die größer oder gleich der Größe(STORAGE_PREDICT_FAILURE) sein muss.

Statusblock

Irp->IoStatus.Status auf STATUS_SUCCESS festgelegt ist, wenn die Anforderung erfolgreich ist. Andernfalls Status der entsprechenden Fehlerbedingung als NTSTATUS- Code.

Anforderungen

Anforderung Wert
Header- ntddstor.h (include Ntddstor.h)

Siehe auch

STORAGE_PREDICT_FAILURE