IOCTL_STORAGE_PREDICT_FAILURE IOCTL (ntddstor.h)
Sondea una predicción de un error de dispositivo. Esta solicitud funciona con las unidades de disco IDE que admiten la tecnología de generación de informes y análisis de autosupervisión (SMART). Si la unidad es una unidad SCSI, el controlador de clase intenta comprobar si el disco SCSI admite la tecnología SMART del IDE equivalente comprobando la información de consulta en la página Control de excepciones de información, X3T10/94-190 Rev 4.
Si el dispositivo admite un error de predicción, el controlador de clase de disco consulta el dispositivo para ver el estado de predicción de errores e informa de los resultados. Si el controlador de clase de disco asigna un valor distinto de cero al miembro PredictFailure de STORAGE_PREDICT_FAILURE en el búfer de salida en Irp-AssociatedIrp.SystemBuffer>, el disco tiene sectores incorrectos y predice un error. La pila de almacenamiento devuelve 512 bytes de información específica del proveedor sobre la predicción de errores en el miembro VendorSpecific de STORAGE_PREDICT_FAILURE.
Si el miembro PredictFailure contiene un valor de cero, el disco no predice un error.
Si el dispositivo no admite la predicción de errores, IOCTL_STORAGE_PREDICT_FAILURE produce un error con un estado de STATUS_INVALID_DEVICE_REQUEST y los datos del búfer de salida no están definidos.
Otros medios de comprobación de errores de disco incluyen la supervisión del registro de eventos y el registro para recibir un evento WMI con WMI_STORAGE_PREDICT_FAILURE_EVENT_GUID.
Código principal
Búfer de entrada
Ninguno.
Longitud del búfer de entrada
Ninguno.
Búfer de salida
El controlador devuelve una estructura STORAGE_PREDICT_FAILURE que contiene datos de predicción de errores en el búfer en Irp-AssociatedIrp.SystemBuffer>.
Longitud del búfer de salida
Parameters.DeviceIoControl.OutputBufferLength indica el tamaño, en bytes, del búfer en Irp-AssociatedIrp.SystemBuffer>, que debe ser mayor o igual que sizeof(STORAGE_PREDICT_FAILURE).
Bloque de estado
Irp->IoStatus.Status se establece en STATUS_SUCCESS si la solicitud se realiza correctamente. De lo contrario, estado de la condición de error adecuada como código NTSTATUS .
Requisitos
Requisito | Valor |
---|---|
Header | ntddstor.h (incluya Ntddstor.h) |