次の方法で共有


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_STORAGE_PREDICT_FAILURE_EVENT_GUIDを使用した WMI イベントの受信登録などがあります。

メジャー コード

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 コードとして適切なエラー状態に します。

必要条件

要件 価値
ヘッダー ntddstor.h (Ntddstor.h を含む)

関連項目

STORAGE_PREDICT_FAILURE