IOCTL_STORAGE_PREDICT_FAILURE IOCTL (ntddstor.h)
輪詢裝置失敗的預測。 此要求適用於支援自我監視分析和報告技術的 IDE 磁碟驅動器, (SMART) 。 如果磁碟驅動器是 SCSI 磁碟驅動器,類別驅動程式會藉由檢查資訊例外狀況控制頁面 X3T10/94-190 Rev 4 上的查詢資訊,嘗試驗證 SCSI 磁碟是否支援對等的 IDE SMART 技術。
如果裝置支援預測失敗,磁碟類別驅動程式會查詢裝置是否有失敗預測狀態,並報告結果。 如果磁碟類別驅動程式將非零值指派給 Irp-AssociatedIrp.SystemBuffer> 輸出緩衝區中STORAGE_PREDICT_FAILURE的 PredictFailure 成員,則磁碟有不良扇區,而且正在預測失敗。 記憶體堆疊會傳回 512 位元組的廠商特定資訊,該資訊是STORAGE_PREDICT_FAILURE VendorSpecific 成員中的失敗預測。
如果 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) |