IOCTL_STORAGE_CHECK_VERIFY IOCTL(ntddstor.h)
호출자가 읽기 또는 쓰기 액세스를 위해 연 이동식 미디어 디바이스에서 미디어가 변경되었는지 여부를 확인합니다. 디바이스에 대한 읽기 또는 쓰기 권한이 필요하지 않은 경우 호출자는 FILE_READ_ATTRIBUTES 사용하여 디바이스를 열고 대신IOCTL_STORAGE_CHECK_VERIFY2 요청을 실행하여 성능을 향상시킬 수 있습니다.
자세한 내용은 이동식 미디어 지원을 참조하세요.
주 코드
입력 버퍼
없음
입력 버퍼 길이
없음
출력 버퍼
필요에 따라 디스크 및 CD-ROM 디바이스의 경우 Irp-AssociatedIrp.SystemBuffer>는 버퍼를 가리키며 미디어 변경 횟수를 수신합니다. Parameters.DeviceIoControl.OutputBufferLength가 0이 아니고 반환 값이 STATUS_SUCCESS 경우에만 드라이버가 이 버퍼를 채웁니다. 미디어 변경 횟수는 드라이버가 시작된 이후 미디어가 변경된 횟수를 나타내는 ULONG입니다.
그렇지 않으면 이 요청에는 출력이 없습니다.
출력 버퍼 길이
필요에 따라 디스크 및 CD-ROM 디바이스의 경우 IRP의 I/O 스택 위치에 있는 Parameters.DeviceIoControl.OutputBufferLength는 = sizeof(ULONG)여야 >하는 버퍼의 크기를 바이트 단위로 나타냅니다. 선택적 버퍼를 지정하지 않으면 이 필드는 0입니다.
그렇지 않으면 이 요청에는 입력이 없습니다.
상태 블록
디스크 또는 CD-ROM 드라이버에 미디어가 변경되었다는 표시가 없는 경우 드라이버는 상태 필드를 STATUS_SUCCESS 설정합니다. 또한 선택적 미디어 변경 버퍼를 지정한 경우 드라이버는 Irp-AssociatedIrp.SystemBuffer>에서 버퍼의 미디어 변경 횟수를 반환하고 정보 필드를 sizeof(ULONG)로 설정합니다. 선택적 미디어 변경 버퍼를 지정하지 않은 경우 드라이버는 정보를 0으로 설정합니다.
드라이버가 미디어가 변경되고 볼륨이 탑재된 것을 감지하는 경우(VPB에 설정된 VPB_MOUNTED) 다음을 수행해야 합니다.
- 정보를 0으로 설정합니다.
- 상태를 STATUS_VERIFY_REQUIRED 설정합니다.
- DeviceObject에서 DO_VERIFY_VOLUME 플래그를 설정합니다.
- 입력 IRP 를 사용하여 IoCompleteRequest 를 호출합니다.
- 상태를 STATUS_IO_DEVICE_ERROR 설정합니다.
- 정보를 0으로 설정합니다.
- IRP를 사용하여 IoCompleteRequest 를 호출합니다.
테이프 드라이버의 경우 정보 필드가 0으로 설정되고 상태 필드가 STATUS_SUCCESS 설정되거나 STATUS_VERIFY_REQUIRED 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ntddstor.h(Ntddstor.h 포함) |