轮询设备故障的预测。 此请求适用于支持自我监视分析和报告技术的 IDE 磁盘驱动器(SMART)。 如果驱动器是 SCSI 驱动器,则类驱动程序会尝试通过检查信息异常控制页 X3T10/94-190 Rev 4 上的查询信息来验证 SCSI 磁盘是否支持等效的 IDE SMART 技术。
如果设备支持预测失败,则磁盘类驱动程序会查询设备是否存在故障预测状态,并报告结果。 如果磁盘类驱动程序在 Irp->AssociatedIrp.SystemBuffer的输出缓冲区中 STORAGE_PREDICT_FAILURE 的 PredictFailure 成员分配非零值,则磁盘具有错误的扇区并预测故障。 存储堆栈返回有关 VendorSpecific 成员STORAGE_PREDICT_FAILURE中故障预测的特定于供应商的 512 字节信息。
如果 PredictFailure 成员包含零值,则磁盘不会预测故障。
如果设备不支持故障预测,则IOCTL_STORAGE_PREDICT_FAILURE失败,状态为STATUS_INVALID_DEVICE_REQUEST,并且输出缓冲区中的数据未定义
检查磁盘故障的其他方法包括监视事件日志并注册以接收带有WMI_STORAGE_PREDICT_FAILURE_EVENT_GUID的 WMI 事件。
主要代码
输入缓冲区
没有。
输入缓冲区长度
没有。
输出缓冲区
驱动程序返回一个 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) |