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

IRP_MJ_DEVICE_CONTROL

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)

Consulte también

STORAGE_PREDICT_FAILURE