IOCTL_STORAGE_PREDICT_FAILURE IOCTL (ntddstor.h)

デバイス障害の予測をポーリングします。 この要求は、自己監視分析およびレポート テクノロジ (SMART) をサポートする IDE ディスク ドライブと連携します。 ドライブが SCSI ドライブの場合、クラス ドライバーは、情報例外制御ページ X3T10/94-190 Rev 4 の問い合わせ情報をチェックして、SCSI ディスクが同等の IDE SMART テクノロジをサポートしているかどうかを確認しようとします。

デバイスで予測エラーがサポートされている場合、ディスク クラス ドライバーはデバイスに対してエラー予測の状態を照会し、結果を報告します。 ディスク クラス ドライバーが Irp-AssociatedIrp.SystemBuffer> の出力バッファー内の STORAGE_PREDICT_FAILUREPredictFailure メンバーに 0 以外の値を割り当てる場合、ディスクには不良セクターがあり、エラーが予測されます。 ストレージ スタックは、STORAGE_PREDICT_FAILURE の VendorSpecific メンバーの障害予測に関するベンダー固有の情報を 512 バイト返します。

PredictFailure メンバーに 0 の値が含まれている場合、ディスクは障害を予測していません。

デバイスが障害予測をサポートしていない場合、IOCTL_STORAGE_PREDICT_FAILUREはSTATUS_INVALID_DEVICE_REQUESTの状態で失敗し、出力バッファー内のデータは未定義です

ディスク障害を確認するその他の方法としては、イベント ログの監視や、WMI イベントを受信するための登録WMI_STORAGE_PREDICT_FAILURE_EVENT_GUIDがあります。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

[なし] :

入力バッファーの長さ

[なし] :

出力バッファー

ドライバーは、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 を含む)

こちらもご覧ください

STORAGE_PREDICT_FAILURE