다음을 통해 공유


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.OutputBufferLengthIrp-AssociatedIrp.SystemBuffer>에서 버퍼의 크기(바이트)를 나타내며 sizeof(STORAGE_PREDICT_FAILURE)와 크거나 같아야 합니다.

상태 블록

Irp->요청이 성공하면 IoStatus.Status 가 STATUS_SUCCESS 설정됩니다. 그렇지 않으면 NTSTATUS 코드로 적절한 오류 조건에 대한 상태입니다.

요구 사항

요구 사항
헤더 ntddstor.h(Ntddstor.h 포함)

추가 정보

STORAGE_PREDICT_FAILURE