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_STORAGE_PREDICT_FAILURE_EVENT_GUID 사용하여 WMI 이벤트를 수신하도록 등록하는 것입니다.
주 코드
입력 버퍼
없음
입력 버퍼 길이
없음
출력 버퍼
드라이버는 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 포함) |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기