IOCTL_STORAGE_PREDICT_FAILURE IOCTL (ntddstor.h)
Esegue il polling per una stima dell'errore del dispositivo. Questa richiesta funziona con le unità disco IDE che supportano l'analisi self-monitoring e la tecnologia di creazione di report (SMART). Se l'unità è un'unità SCSI, il driver di classe tenta di verificare se il disco SCSI supporta la tecnologia IDE SMART equivalente controllando le informazioni sull'indagine nella pagina controllo eccezioni informazioni, X3T10/94-190 Rev 4.
Se il dispositivo supporta l'errore di stima, il driver della classe disco esegue una query sul dispositivo per lo stato di stima degli errori e segnala i risultati. Se il driver della classe disco assegna un valore diverso da zero al membro PredictFailure di STORAGE_PREDICT_FAILURE nel buffer di output in Irp-AssociatedIrp.SystemBuffer>, il disco ha settori non aggiornati e prevede un errore. Lo stack di archiviazione restituisce 512 byte di informazioni specifiche del fornitore sulla stima degli errori nel membro VendorSpecific di STORAGE_PREDICT_FAILURE.
Se il membro PredictFailure contiene un valore pari a zero, il disco non prevede un errore.
Se il dispositivo non supporta la stima degli errori, IOCTL_STORAGE_PREDICT_FAILURE ha esito negativo con uno stato di STATUS_INVALID_DEVICE_REQUEST e i dati nel buffer di output non sono definiti
Altri mezzi per verificare l'errore del disco includono il monitoraggio del registro eventi e la registrazione per ricevere un evento WMI con WMI_STORAGE_PREDICT_FAILURE_EVENT_GUID.
Codice principale
Buffer di input
Nessuno.
Lunghezza del buffer di input
Nessuno.
Buffer di output
Il driver restituisce una struttura STORAGE_PREDICT_FAILURE contenente i dati di stima degli errori nel buffer in Irp-AssociatedIrp.SystemBuffer>.
Lunghezza del buffer di output
Parameters.DeviceIoControl.OutputBufferLength indica le dimensioni, in byte, del buffer in Irp-AssociatedIrp.SystemBuffer>, che deve essere maggiore o uguale alla dimensioneof(STORAGE_PREDICT_FAILURE).
Blocco dello stato
Irp->IoStatus.Status è impostato su STATUS_SUCCESS se la richiesta ha esito positivo. In caso contrario, stato della condizione di errore appropriata come codice NTSTATUS .
Requisiti
Requisito | Valore |
---|---|
Intestazione | ntddstor.h (include Ntddstor.h) |