일반 스토리지 I/O 제어 코드
다양한 종류의 스토리지 디바이스에는 동일한 서비스가 필요한 경우가 많습니다. 이 섹션에서는 각 디바이스 유형에 대해 이러한 서비스를 제공하는 IOCTL 요청을 복제하는 대신 스토리지 디바이스에 자주 필요한 표준 서비스 및 함께 제공되는 디바이스 제어 코드 집합을 정의합니다. 여기에 정의된 I/O 컨트롤 코드에는 IOCTL_STORAGE_XXX 형식이 있으며 DeviceType이 DISK, TAPE 또는 CDROM인 IOCTL_DeviceType_XXX 컨트롤 코드를 대체합니다. 예를 들어 IOCTL_STORAGE_RESERVEIOCTL_DISK_RESERVE, IOCTL_TAPE_RESERVE 및 IOCTL_CDROM_RESERVE 대체합니다. IOCTL_STORAGE_XXX 컨트롤 코드에는 이전 디스크, 테이프 및 CD-ROM 코드와 동일한 함수 코드, 전송 메서드 및 필수 액세스 값이 있습니다. 유일한 차이점은 디바이스 유형입니다.
스토리지 클래스 드라이버는 이러한 요청 중 일부를 시작하지만 일반적으로 그렇게 하는 애플리케이션입니다. 스토리지 클래스 드라이버는 스토리지 디바이스 유형에 따라 이러한 요청의 일부 또는 전체를 처리해야 합니다. 스토리지 클래스 드라이버가 없는 경우 애플리케이션은 포트 드라이버에 직접 요청을 할 수 있습니다.
Ioctl | Description |
---|---|
IOCTL_STORAGE_BREAK_RESERVATION | 디스크 예약을 중단합니다. |
IOCTL_STORAGE_CHECK_VERIFY | 호출자가 읽기 또는 쓰기 액세스를 위해 연 이동식 미디어 디바이스에서 미디어가 변경되었는지 여부를 확인합니다. |
IOCTL_STORAGE_CHECK_VERIFY2 | 이동식 미디어 디바이스에서 미디어가 변경되었는지 여부를 결정합니다. 호출자가 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 | FILE_DEVICE_XXX 유형, 디바이스 번호를 포함하는 STORAGE_DEVICE_NUMBER 구조를 반환하고, 분할 가능한 디바이스의 경우 디바이스가 시작될 때 드라이버가 디바이스에 할당한 파티션 번호를 반환합니다. |
IOCTL_STORAGE_GET_HOTPLUG_INFO | 지정된 디바이스의 핫플러그 구성을 검색합니다. |
IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES | IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES 요청은 스토리지 클래스 드라이버로 전송되어 스토리지 디바이스에서 사용 가능하고 사용된 매핑 리소스를 확인합니다. |
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 | IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS 제어 코드는 디바이스에서 상태 물리적 요소를 쿼리하고 반환합니다. |
IOCTL_STORAGE_LOAD_MEDIA | 읽기 또는 쓰기 액세스를 위해 호출자가 연 디바이스에 미디어가 로드되도록 합니다. |
IOCTL_STORAGE_LOAD_MEDIA2 | 호출자가 FILE_READ_ATTRIBUTES 사용하여 연 디바이스에 미디어가 로드되도록 합니다. |
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES | 이 IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 요청은 스토리지 디바이스에 관리 데이터 집합 특성 요청을 보내는 데 사용됩니다. |
IOCTL_STORAGE_MCN_CONTROL | 이동식 미디어 디바이스에서 사용자 지정 PnP 이벤트 GUID_IO_MEDIA_ARRIVAL 및 GUID_IO_MEDIA_REMOVAL 일시적으로 전달을 사용하거나 사용하지 않도록 설정합니다. |
IOCTL_STORAGE_MEDIA_REMOVAL | 디바이스를 잠가 미디어 제거를 방지합니다. |
IOCTL_STORAGE_PERSISTENT_RESERVE_IN | 일반 스토리지 클래스 드라이버(classpnp.sys)는 영구 예약 In 명령을 실행하기 위한 IOCTL(I/O 컨트롤) 인터페이스를 노출합니다. |
IOCTL_STORAGE_PERSISTENT_RESERVE_OUT | 일반 스토리지 클래스 드라이버(classpnp.sys)는 영구 예약 출력 명령을 실행하기 위한 IOCTL(I/O 컨트롤) 인터페이스를 노출합니다. |
IOCTL_STORAGE_PREDICT_FAILURE | 디바이스 오류 예측을 폴링합니다. |
IOCTL_STORAGE_PROTOCOL_COMMAND | 드라이버는 IOCTL_STORAGE_PROTOCOL_COMMAND 사용하여 공급업체별 명령을 스토리지 디바이스에 전달할 수 있습니다. |
IOCTL_STORAGE_QUERY_PROPERTY | 드라이버는 IOCTL_STORAGE_QUERY_PROPERTY 사용하여 스토리지 디바이스 또는 어댑터의 속성을 반환할 수 있습니다. |
IOCTL_STORAGE_READ_CAPACITY | IOCTL_STORAGE_READ_CAPACITY 요청은 대상 스토리지 디바이스에 대한 읽기 용량 정보를 반환합니다. |
IOCTL_STORAGE_REINITIALIZE_MEDIA | 드라이버는 IOCTL_STORAGE_REINITIALIZE_MEDIA 제어 코드를 사용하여 디바이스를 다시 초기화하거나 지울 수 있습니다. |
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 | 드라이버는 IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD 사용하여 스토리지 디바이스의 온도 임계값을 설정할 수 있습니다(하드웨어에서 지원하는 경우). |