IOCTL_STORAGE_PREDICT_FAILURE IOCTL (ntddstor.h)

轮询设备故障预测。 此请求适用于支持自监视分析和报告技术的 IDE 磁盘驱动器 (SMART) 。 如果驱动器是 SCSI 驱动器,则类驱动程序尝试通过检查信息异常控制页 X3T10/94-190 Rev 4 上的查询信息来验证 SCSI 磁盘是否支持等效的 IDE SMART 技术。

如果设备支持预测失败,则磁盘类驱动程序会查询设备的故障预测状态并报告结果。 如果磁盘类驱动程序将非零值分配给 Irp-AssociatedIrp.SystemBuffer> 输出缓冲区中STORAGE_PREDICT_FAILUREPredictFailure 成员,则磁盘具有坏扇区,并且正在预测故障。 存储堆栈返回 512 字节的供应商特定信息,这些信息与 STORAGE_PREDICT_FAILURE 的 VendorSpecific 成员中的故障预测有关。

如果 PredictFailure 成员包含的值为零,则磁盘不会预测故障。

如果设备不支持故障预测,IOCTL_STORAGE_PREDICT_FAILURE失败,状态为STATUS_INVALID_DEVICE_REQUEST,并且输出缓冲区中的数据未定义

检查磁盘故障的其他方法包括监视事件日志和注册以使用WMI_STORAGE_PREDICT_FAILURE_EVENT_GUID接收 WMI 事件。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

无。

输入缓冲区长度

无。

输出缓冲区

驱动程序返回一个STORAGE_PREDICT_FAILURE结构,其中包含 Irp-AssociatedIrp.SystemBuffer> 缓冲区中的故障预测数据。

输出缓冲区长度

Parameters.DeviceIoControl.OutputBufferLength 指示 Irp-AssociatedIrp.SystemBuffer> 上的缓冲区的大小(以字节为单位),该大小必须大于或等于 (STORAGE_PREDICT_FAILURE) 的大小

状态块

Irp->如果请求成功,IoStatus.Status 设置为 STATUS_SUCCESS。 否则, 状态 为相应的错误条件作为 NTSTATUS 代码。

要求

要求
Header ntddstor.h (包括 Ntddstor.h)

另请参阅

STORAGE_PREDICT_FAILURE