一般的なストレージの I/O 制御コード

さまざまな種類のストレージ デバイスでは、多くの場合、同じサービスが必要です。 このセクションでは、デバイスの種類ごとにこれらのサービスを提供する IOCTL 要求を複製するのではなく、ストレージ デバイスで頻繁に必要とされる一連の標準サービスと付随するデバイス制御コードを定義します。 ここで定義されている I/O 制御コードの形式は IOCTL_STORAGE_XXX であり、DeviceType が DISK、TAPE、または CDROM であった IOCTL_DeviceType_XXX 制御コードを置き換えます。 たとえば、IOCTL_STORAGE_RESERVE は、IOCTL_DISK_RESERVEIOCTL_TAPE_RESERVEIOCTL_CDROM_RESERVE を置き換えます。 IOCTL_STORAGE_XXX 制御コードには、前のディスク、テープ、CD-ROM コードと同じ値の関数コード、転送方法、必要なアクセスなどがあります。 唯一の違いは、デバイスの種類です。

ストレージ クラス ドライバーは、これらの要求の一部を開始しますが、通常は、これを行うアプリケーションです。 ストレージ クラス ドライバーは、ストレージ デバイスの種類に応じて、これらの要求の一部またはすべてを処理する必要があります。 記憶域クラス ドライバーが存在しない場合、アプリケーションはポート ドライバーに直接要求を行う可能性があります。

IOCTL 説明
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) は、永続予約イン コマンドを発行するための I/O コントロール (IOCTL) インターフェイスを公開します。
IOCTL_STORAGE_PERSISTENT_RESERVE_OUT 汎用ストレージ クラス ドライバー (classpnp.sys) は、永続予約アウト コマンドを発行するための I/O コントロール (IOCTL) インターフェイスを公開します。
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 を使用して、ストレージ デバイスの温度しきい値を設定できます (ハードウェアでサポートされている場合)。