다양한 종류의 스토리지 디바이스에는 동일한 서비스가 필요한 경우가 많습니다. 이 섹션에서는 각 디바이스 유형에 대해 이러한 서비스를 제공하는 IOCTL 요청을 복제하는 대신 스토리지 디바이스에 자주 필요한 표준 서비스 및 함께 제공되는 디바이스 제어 코드 집합을 정의합니다. The I/O control codes defined here have the form IOCTL_STORAGE_XXX and they replace the IOCTL_DeviceType_XXX control codes, where DeviceType was DISK, TAPE, or CDROM. For example, IOCTL_STORAGE_RESERVE replaces IOCTL_DISK_RESERVE, IOCTL_TAPE_RESERVE, and IOCTL_CDROM_RESERVE. The IOCTL_STORAGE_XXX control codes have identical values for function code, transfer method, and required access as the previous disk, tape, and CD-ROM codes. 유일한 차이점은 디바이스 유형입니다.
스토리지 클래스 드라이버는 이러한 요청 중 일부를 시작하지만 일반적으로 그렇게 하는 애플리케이션입니다. 스토리지 클래스 드라이버는 스토리지 디바이스 유형에 따라 이러한 요청의 일부 또는 전부를 처리해야 합니다. 스토리지 클래스 드라이버가 없는 경우 애플리케이션은 포트 드라이버에 직접 요청을 할 수 있습니다.
| IOCTL | Description |
|---|---|
| IOCTL_STORAGE_BREAK_RESERVATION | 디스크 예약을 중단합니다. |
| IOCTL_STORAGE_CHECK_VERIFY | 호출자가 읽기 또는 쓰기 액세스를 위해 연 이동식 미디어 디바이스에서 미디어가 변경되었는지 여부를 확인합니다. |
| IOCTL_STORAGE_CHECK_VERIFY2 | Determines whether the media has changed on a removable-media device - the caller has opened with FILE_READ_ATTRIBUTES. |
| IOCTL_STORAGE_DEVICE_POWER_CAP | 스토리지 디바이스의 최대 작동 전력 소비 수준을 지정합니다. |
| IOCTL_STORAGE_EJECT_MEDIA | 디바이스에서 배출 기능을 지원하는 경우 디바이스가 미디어를 배출하도록 합니다. |
| IOCTL_STORAGE_EJECTION_CONTROL | 디바이스를 잠가 미디어 제거를 방지합니다. |
| IOCTL_STORAGE_FIND_NEW_DEVICES | 시스템이 부팅된 이후 또는 드라이버가 이 요청을 마지막으로 처리한 이후 드라이버에서 지원하는 다른 디바이스가 I/O 버스에 연결되었는지 여부를 확인합니다. |
| IOCTL_STORAGE_FIRMWARE_ACTIVATE | 스토리지 디바이스에서 펌웨어 이미지를 활성화합니다. |
| IOCTL_STORAGE_FIRMWARE_DOWNLOAD | 스토리지 디바이스에 펌웨어 이미지를 다운로드하지만 활성화하지는 않습니다. |
| IOCTL_STORAGE_FIRMWARE_GET_INFO | 스토리지 디바이스에서 자세한 펌웨어 정보를 쿼리합니다. |
| IOCTL_STORAGE_GET_DEVICE_NUMBER | Returns a STORAGE_DEVICE_NUMBER structure that contains the FILE_DEVICE_XXX type, device number, and, for a partitionable device, the partition number assigned to a device by the driver when the device is started. |
| IOCTL_STORAGE_GET_HOTPLUG_INFO | 지정된 디바이스의 핫플러그 구성을 검색합니다. |
| IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES | The IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES request is sent to the storage class driver to determine available and used mapping resources on a storage device. |
| IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER | USB 제네릭 부모 드라이버에 USB 디바이스의 일련 번호를 쿼리합니다. |
| IOCTL_STORAGE_GET_MEDIA_TYPES | 플로피 드라이브의 기하 도형에 대한 정보를 반환합니다. |
| IOCTL_STORAGE_GET_MEDIA_TYPES_EX | 디바이스에서 지원하는 미디어 유형에 대한 정보를 반환합니다. |
| IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS | The IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS control code queries for and returns the physical element status from a device. |
| IOCTL_STORAGE_LOAD_MEDIA | 호출자가 읽기 또는 쓰기 액세스를 위해 연 디바이스에 미디어를 로드합니다. |
| IOCTL_STORAGE_LOAD_MEDIA2 | Causes media to be loaded in a device that the caller has opened with FILE_READ_ATTRIBUTES. |
| IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES | This IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES request is used to send a manage data set attributes request to a storage device. |
| IOCTL_STORAGE_MCN_CONTROL | Temporarily enables or disables delivery of the custom PnP events GUID_IO_MEDIA_ARRIVAL and GUID_IO_MEDIA_REMOVAL on a removable-media device. |
| IOCTL_STORAGE_MEDIA_REMOVAL | 디바이스를 잠가 미디어 제거를 방지합니다. |
| IOCTL_STORAGE_PERSISTENT_RESERVE_IN | 제네릭 스토리지 클래스 드라이버(classpnp.sys)는 영구 예약 명령을 실행하기 위한 IOCTL(I/O 컨트롤) 인터페이스를 노출합니다. |
| IOCTL_STORAGE_PERSISTENT_RESERVE_OUT | 제네릭 스토리지 클래스 드라이버(classpnp.sys)는 영구 예약 아웃 명령을 실행하기 위한 I/O 컨트롤(IOCTL) 인터페이스를 노출합니다. |
| IOCTL_STORAGE_PREDICT_FAILURE | 디바이스 오류 예측을 폴링합니다. |
| IOCTL_STORAGE_PROTOCOL_COMMAND | A driver can use IOCTL_STORAGE_PROTOCOL_COMMAND to pass vendor-specific commands to a storage device |
| IOCTL_STORAGE_QUERY_PROPERTY | A driver can use IOCTL_STORAGE_QUERY_PROPERTY to return properties of a storage device or adapter. |
| IOCTL_STORAGE_READ_CAPACITY | The IOCTL_STORAGE_READ_CAPACITY request returns the read capacity information for the target storage device. |
| IOCTL_STORAGE_REINITIALIZE_MEDIA | A driver can use the IOCTL_STORAGE_REINITIALIZE_MEDIA control code to reinitialize/erase a device. |
| IOCTL_STORAGE_RELEASE | 이전에 여러 초기자를 지원하는 버스에서 호출자의 전용 사용을 위해 예약된 디바이스와 SCSI 버스와 같은 디바이스 예약 개념을 해제합니다. |
| IOCTL_STORAGE_RESERVE | 여러 초기자를 지원하는 버스의 호출자 전용 사용 및 SCSI 버스와 같은 디바이스 예약 개념에 대해 디바이스를 클레임합니다. |
| IOCTL_STORAGE_RESET_BUS | I/O 버스와 간접적으로 버스의 각 디바이스를 다시 설정합니다. |
| IOCTL_STORAGE_RESET_DEVICE | 가능하면 버스의 다른 디바이스에 영향을 주지 않고 비 SCSI 스토리지 디바이스를 다시 설정합니다. |
| IOCTL_STORAGE_SET_HOTPLUG_INFO | 지정된 디바이스의 핫플러그 구성을 설정합니다. |
| IOCTL_STORAGE_SET_PROPERTY | 속성 변경 요청이 성공했는지 또는 오류를 발생시키는지를 나타냅니다. |
| IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD | A driver can use IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD to set the temperature threshold of a storage device (when supported by the hardware). |