IOCTL_STORAGE_PREDICT_FAILURE IOCTL (ntddstor.h)
デバイス障害の予測をポーリングします。 この要求は、自己監視分析およびレポート テクノロジ (SMART) をサポートする IDE ディスク ドライブと連携します。 ドライブが SCSI ドライブの場合、クラス ドライバーは、情報例外制御ページ X3T10/94-190 Rev 4 の問い合わせ情報をチェックして、SCSI ディスクが同等の IDE SMART テクノロジをサポートしているかどうかを確認しようとします。
デバイスで予測エラーがサポートされている場合、ディスク クラス ドライバーはデバイスに対してエラー予測の状態を照会し、結果を報告します。 ディスク クラス ドライバーが Irp-AssociatedIrp.SystemBuffer> の出力バッファー内の STORAGE_PREDICT_FAILURE の PredictFailure メンバーに 0 以外の値を割り当てる場合、ディスクには不良セクターがあり、エラーが予測されます。 ストレージ スタックは、STORAGE_PREDICT_FAILURE の VendorSpecific メンバーの障害予測に関するベンダー固有の情報を 512 バイト返します。
PredictFailure メンバーに 0 の値が含まれている場合、ディスクは障害を予測していません。
デバイスが障害予測をサポートしていない場合、IOCTL_STORAGE_PREDICT_FAILUREはSTATUS_INVALID_DEVICE_REQUESTの状態で失敗し、出力バッファー内のデータは未定義です
ディスク障害を確認するその他の方法としては、イベント ログの監視や、WMI イベントを受信するための登録WMI_STORAGE_PREDICT_FAILURE_EVENT_GUIDがあります。
メジャー コード
[入力バッファー]
[なし] :
入力バッファーの長さ
[なし] :
出力バッファー
ドライバーは、Irp-AssociatedIrp.SystemBuffer> のバッファー内のエラー予測データを含むSTORAGE_PREDICT_FAILURE構造体を返します。
出力バッファーの長さ
Parameters.DeviceIoControl.OutputBufferLength は、Irp-AssociatedIrp.SystemBuffer> のバッファーのサイズ (バイト単位) を示します。これは sizeof(STORAGE_PREDICT_FAILURE) 以上である必要があります。
ステータス ブロック
Irp->要求が成功した場合、IoStatus.Status はSTATUS_SUCCESSに設定されます。 それ以外の場合は、NTSTATUS コードとして適切なエラー条件に対する状態。
要件
要件 | 値 |
---|---|
Header | ntddstor.h (Ntddstor.h を含む) |