一般儲存體 I/O 控制程式碼
不同種類的儲存體裝置通常需要相同的服務。 本節不會複製為每個裝置類型提供這些服務的 IOCTL 要求,而是定義一組標準服務,以及儲存體裝置經常需要隨附的裝置控制代碼。 此處定義的 I/O 控制項代碼格式為 IOCTL_STORAGE_XXX,且會取代deviceType為 DISK、TAPE 或 CDROM 的IOCTL_DeviceType_XXX控制項代碼。 例如, IOCTL_STORAGE_RESERVE 會取代 IOCTL_DISK_RESERVE、 IOCTL_TAPE_RESERVE和 IOCTL_CDROM_RESERVE。 IOCTL_STORAGE_XXX 控制程式代碼具有與先前磁片、磁帶和 CD-ROM 代碼相同的函式程式碼、傳輸方法和必要存取值。 唯一的差異是裝置類型。
儲存體類別驅動程式會起始其中一些要求,但通常是執行此動作的應用程式。 儲存類別驅動程式必須根據儲存裝置的類型來處理部分或全部的要求。 如果沒有任何儲存體類別驅動程式存在,應用程式可能會直接對埠驅動程式提出要求。
IOCTL | 描述 |
---|---|
IOCTL_STORAGE_BREAK_RESER加值稅ION | 中斷磁片保留。 |
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_ACTI加值稅E | 在存放裝置上啟動韌體映射。 |
IOCTL_STORAGE_FIRMWARE_DOWNLOAD | 將韌體映射下載到存放裝置,但不會加以啟用。 |
IOCTL_STORAGE_FIRMWARE_GET_INFO | 查詢儲存體裝置以取得詳細的韌體資訊。 |
IOCTL_STORAGE_GET_DEVICE_NUMBER | 傳回 STORAGE_DEVICE_NUMBER 結構,其中包含可分割裝置的FILE_DEVICE_XXX類型、裝置編號,以及針對可分割裝置,驅動程式在啟動裝置時指派給裝置的資料分割編號。 |
IOCTL_STORAGE_GET_HOTPLUG_INFO | 擷取指定裝置的 hotplug 組態。 |
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) 會公開 I/O 控制項 (IOCTL) 介面,以發出永續性保留 In 命令。 |
IOCTL_STORAGE_PERSISTENT_RESERVE_OUT | 泛型儲存類別驅動程式 (classpnp.sys) 會公開 I/O 控制項 (IOCTL) 介面,以發出 Persistent Reserve Out 命令。 |
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 | 設定指定裝置的 hotplug 組態。 |
IOCTL_STORAGE_SET_PROPERTY | 指出變更屬性的要求是否成功或造成錯誤。 |
IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD | 當硬體) 支援時,驅動程式可以使用 IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD 來設定存放裝置 (的溫度閾值。 |