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