不同類型的存儲設備通常需要相同的服務。 本節不會複製為每個裝置類型提供這些服務的 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) 會公開 I/O 控件 (IOCTL) 介面,以發出 Persistent Reserve In 命令。 |
| 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 | 設定指定裝置的 hotplug 組態。 |
| 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). |