CD-ROM I/O 제어 코드

CD-ROM 디바이스 드라이버에 대한 모든 공용 I/O 제어 코드는 버퍼링된 I/O를 사용합니다. 따라서 이러한 요청에 대한 입력 또는 출력 데이터는 Irp-AssociatedIrp.SystemBuffer>에 있습니다.

CD-ROM 디바이스용 클래스 드라이버는 이 섹션에 설명된 코드와 함께 추가 공용 I/O 제어 코드를 처리합니다. 스토리지 클래스 드라이버의 요구 사항에 대한 자세한 내용은 일반 스토리지 I/O 제어 코드를 참조하세요.

I/O 제어 코드 Description
IOCTL_CDROM_CHECK_VERIFY 이 IOCTL은 IOCTL_STORAGE_CHECK_VERIFY 대체됩니다. 두 IOCTL 간의 유일한 차이점은 기본 값입니다.
IOCTL_CDROM_CLOSE_DOOR 이 I/O 제어 코드는 IOCTL_STORAGE_LOAD_MEDIA 대체되었습니다.
IOCTL_CDROM_ENABLE_STREAMING 원시 읽기 및 쓰기 요청에 대해 핸들별로 CDROM 스트리밍 모드를 사용하거나 사용하지 않도록 설정합니다. 이 작업을 수행하려면 DeviceIoControl 함수를 호출하고 IOCTL_CDROM_ENABLE_STREAMING I/O 컨트롤 요청을 dwIoControlCode 매개 변수로 지정합니다.
IOCTL_CDROM_EXCLUSIVE_ACCESS CD-ROM 클래스 드라이버가 CD-ROM 디바이스의 액세스 상태를 내보내고, 단독 액세스를 위해 CD-ROM 디바이스를 잠그고, 단독 액세스를 위해 CD-ROM 디바이스의 잠금을 해제하도록 지시합니다.
IOCTL_CDROM_FIND_NEW_DEVICES 이 IOCTL은 IOCTL_STORAGE_FIND_NEW_DEVICES 대체됩니다. 두 IOCTL 간의 유일한 차이점은 기본 값입니다.
IOCTL_CDROM_GET_CONFIGURATION CD-ROM 디바이스에서 기능 및 프로필 정보를 요청합니다.
IOCTL_CDROM_GET_DRIVE_GEOMETRY CD-ROM의 기하 도형(미디어 형식, 실린더 수, 실린더당 트랙 수, 트랙당 섹터 및 섹터당 바이트)에 대한 정보를 반환합니다.
IOCTL_CDROM_GET_DRIVE_GEOMETRY_EX CD-ROM의 기하 도형(미디어 형식, 실린더 수, 실린더당 트랙 수, 트랙당 섹터 및 섹터당 바이트)에 대한 정보를 반환합니다.
IOCTL_CDROM_GET_INQUIRY_DATA CD-ROM 디바이스에 대한 SCSI 조회 데이터를 반환합니다. 이 IOCTL은 디바이스가 IOCTL_CDROM_EXCLUSIVE_ACCESS 단독으로 잠긴 경우에 사용할 수 있습니다.
IOCTL_CDROM_GET_LAST_SESSION 디바이스에서 첫 번째 전체 세션 번호, 마지막 전체 세션 번호 및 마지막 전체 세션 시작 주소를 쿼리합니다.
IOCTL_CDROM_GET_PERFORMANCE 디바이스에서 지원되는 속도를 검색합니다. IOCTL_CDROM_GET_PERFORMANCE I/O 컨트롤 요청은 MMC 명령 GET PERFORMANCE에 대한 래퍼입니다.
IOCTL_CDROM_LOAD_MEDIA 돌출된 CDROM 트레이를 드라이브에 다시 그립니다.
IOCTL_CDROM_RAW_READ 원시 모드에서 CD-ROM에서 데이터를 읽습니다.
IOCTL_CDROM_READ_Q_CHANNEL 현재 위치(사용되지 않음), 미디어 카탈로그 또는 ISRC 추적 데이터를 반환합니다.
IOCTL_CDROM_READ_TOC 사용되지 않습니다. 미디어의 목차를 반환합니다.
IOCTL_CDROM_READ_TOC_EX 대상 디바이스에서 목차(TOC), PMA(프로그램 메모리 영역) 및 ATIP(pregroove)의 절대 시간을 쿼리합니다.
IOCTL_CDROM_SEND_OPC_INFORMATION 파일 시스템 및 OPC(Optimum Power Calibration) 프로시저를 미리 수행하려는 다른 구현에서 사용되므로 첫 번째 스트리밍 쓰기는 프로시저가 완료되기를 기다릴 필요가 없습니다.
IOCTL_CDROM_SET_SPEED CD-ROM 드라이브의 스핀들 속도를 설정합니다.

미디어 재생 컨트롤

Windows Vista부터 CDROM 클래스 드라이버는 이러한 IOCTL을 사용하지 않습니다. Windows Vista 이전에는 이러한 IOCTL이 하드웨어에서 직접 오디오 출력을 지원하는 이전 CD-ROM 드라이브에서 오디오 재생에 사용되었습니다.

클라이언트 애플리케이션은 이러한 IOCTL을 발급하는 대신 MCI(미디어 제어 인터페이스) API를 사용해야 합니다.

I/O 제어 코드 Description
IOCTL_CDROM_GET_CONTROL 현재 오디오 재생 모드를 결정합니다.
IOCTL_CDROM_GET_VOLUME 각 디바이스의 오디오 포트에 대한 현재 볼륨을 결정합니다.
IOCTL_CDROM_PAUSE_AUDIO 오디오 재생을 일시 중단합니다.
IOCTL_CDROM_PLAY_AUDIO_MSF 지정된 미디어 범위를 재생합니다.
IOCTL_CDROM_READ_Q_CHANNEL 현재 위치(사용되지 않음), 미디어 카탈로그 또는 ISRC 추적 데이터를 반환합니다.
IOCTL_CDROM_RESUME_AUDIO 일시 중단된 오디오 작업을 다시 시작합니다.
IOCTL_CDROM_SEEK_AUDIO_MSF 미디어에서 지정된 MSF로 헤드를 이동합니다.
IOCTL_CDROM_SET_VOLUME 디바이스의 오디오 포트에 대한 볼륨을 다시 설정합니다.
IOCTL_CDROM_STOP_AUDIO 오디오 재생을 종료합니다.