一般的なストレージの 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_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 を使用して、ストレージ デバイスの温度しきい値を設定できます (ハードウェアでサポートされている場合)。 |