IOCTL_STORAGE_PREDICT_FAILURE IOCTL (ntddstor.h)

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

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

如果 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 的缓冲区的大小(以字节为单位), 必须大于或等于 sizeof(STORAGE_PREDICT_FAILURE)。

状态块

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

要求

要求 价值
标头 ntddstor.h (包括 Ntddstor.h)

另请参阅

STORAGE_PREDICT_FAILURE