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 sulla richiesta nella pagina di controllo delle eccezioni informative, X3T10/94-190 Rev 4.
Se il dispositivo supporta l'errore di stima, il driver della classe del disco esegue una query sul dispositivo per verificare lo stato di previsione degli errori e segnala i risultati. Se il driver della classe del disco assegna un valore diverso da zero al membro PredictFailure di STORAGE_PREDICT_FAILURE nel buffer di output in corrispondenza di Irp->AssociatedIrp.SystemBuffer, il disco presenta settori danneggiati e prevede un errore. Lo stack di archiviazione restituisce 512 byte di informazioni specifiche del fornitore sulla stima degli errori nel VendorSpecific membro 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 lo stato 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 di STORAGE_PREDICT_FAILURE contenente i dati di stima degli errori nel buffer in corrispondenza di 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 dimensione di(STORAGE_PREDICT_FAILURE).
Blocco di stato
Irp-> IoStatus.Status è impostato su STATUS_SUCCESS se la richiesta ha esito positivo. In caso contrario, stato alla condizione di errore appropriata come codice NTSTATUS.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ntddstor.h (include Ntddstor.h) |