IRP_MJ_QUERY_VOLUME_INFORMATION (FS およびフィルター ドライバー)

送信時

I/O マネージャーは、IRP_MJ_QUERY_VOLUME_INFORMATION リクエスト。 たとえば、ユーザーモード アプリケーションがGetDiskFreeSpace または GetFileType などの Win32 関数を呼び出したときに送信できます。

操作: ファイル システム ドライバー

ファイル システム ドライバーは、ファイル オブジェクトを抽出およびデコードして、ターゲット デバイス オブジェクトがファイル システムの制御デバイス オブジェクトであるかどうかを判断する必要があります。 そうであり、ボリューム オープン (またはボリューム上のオブジェクトのオープン) であるハンドルに対して要求が発行された場合、ファイル システム ドライバーは要求を処理し、IRP を完了する必要があります。

それ以外の場合、ファイル システム ドライバーはクエリに失敗し、IRP を完了する必要があります。

クエリできるボリューム情報の種類はファイル システムによって異なりますが、通常は次の値が含まれます。

  • FileFsAttributeInformation
  • FileFsDeviceInformation
  • FileFsSizeInformation
  • FileFsVolumeInformation

考えられるすべての情報タイプのリストについては、「IrpSp->Parameters.QueryVolume.FsInformationClass」を参照してください。

操作: ネットワーク リダイレクト ドライバー

FileFsDeviceInformation の要求を受信するネットワーク リダイレクターには、オプションの 1 つとして FILE_REMOTE_DEVICE を含める必要があります。DeviceCharacteristics の数FILE_FS_DEVICE_INFORMATION 構造体が返されました。

操作: レガシー ファイル システム フィルター ドライバー

フィルター ドライバーは、この IRP をスタック上の次に下位のドライバーに渡す必要があります。

パラメーター

ファイル システムまたはフィルター ドライバーは、指定された IRP で IoGetCurrentIrpStackLocation を呼び出して、IRP 内の独自のスタックの場所へのポインターを取得します。 次のパラメーターでは、IrpIRP を指し、IrpSpIO_STACK_LOCATION を指します。 ドライバーは、IRP の次のメンバーと IRP スタックの場所に設定されている情報を使用して、クエリ ボリューム情報要求を処理できます。

  • DeviceObject ターゲット デバイス オブジェクトへのポインターです。

  • Irp->AssociatedIrp.SystemBuffer ボリューム情報が返されるシステム提供の出力バッファーを指します。 この情報は、次のいずれかの構造に保存されます。

    • FILE_FS_ATTRIBUTE_INFORMATION
    • FILE_FS_CONTROL_INFORMATION
    • FILE_FS_DEVICE_INFORMATION
    • FILE_FS_DRIVER_PATH_INFORMATION
    • FILE_FS_FULL_SIZE_INFORMATION
    • FILE_FS_OBJECTID_INFORMATION
    • FILE_FS_SIZE_INFORMATION
    • FILE_FS_VOLUME_FLAGS_INFORMATION
    • FILE_FS_VOLUME_INFORMATION
    • FILE_FS_SECTOR_SIZE_INFORMATION

    FileFsVolumeFlagsInformation クラスと関連する FILE_FS_VOLUME_INFORMATION 構造は Windows Vista 以降のバージョンで利用できます。

  • Irp->Ioステータス は、最終的な完了ステータスと要求された操作に関する情報を受け取る IO_STATUS_BLOCK構造体を指します。

  • Irp->UserBuffer は、I/O マネージャーによる I/O 完了時に Irp->AssociatedIrp.SystemBuffer の内容がコピーされる、呼び出し元が指定した出力バッファーへの省略可能なポインターです。 ドライバーは、リクエストのデータを返すためにこのバッファーを使用しません。

  • IrpSp->FileObject は、DeviceObject に関連付けられているファイル オブジェクトを指します。

    IrpSp->FileObject パラメータには、RelatedFileObject フィールド。これも FILE_OBJECT 構造体です。 RelatedFileObjectFILE_OBJECT 構造体のフィールドは、処理中は無効です。IRP_MJ_QUERY_VOLUME_INFORMATION そして使用すべきではありません。

  • IrpSp->MajorFunction に設定されていますIRP_MJ_QUERY_VOLUME_INFORMATION.

  • IrpSp->Parameters.QueryVolume.FsInformationClass ファイルシステムによって返されるボリューム情報のタイプです。 このメンバーは、次の値の 1 つを指定できます。

Value 意味
FileFsAttributeInformation ボリュームを担当するファイルシステムに関する属性情報を含む FILE_FS_ATTRIBUTE_INFORMATION 構造体を返します。
FileFsControlInformation 戻る FILE_FS_CONTROL_INFORMATION ボリュームに関するファイル システム制御情報を含む構造。
FileFsDeviceInformation 戻る FILE_FS_DEVICE_INFORMATION ボリュームのデバイス情報を含む構造。
FileFsDriverPathInformation 戻るFILE_FS_DRIVER_PATH_INFORMATION 指定されたドライバーがボリュームの I/O パスにあるかどうかに関する情報を含む構造体。 IRP_MJ_QUERY_VOLUME_INFORMATION 要求の発信元は、ファイル システム ボリューム デバイス スタックに IRP を送信する前に、ドライバーの名前を FILE_FS_DRIVER_PATH_INFORMATION 構造体に格納する必要があります。
FileFsFullSizeInformation 戻る FILE_FS_FULL_SIZE_INFORMATION ボリューム上で利用可能なスペースの合計量に関する情報を含む構造体。
FileFsObjectIdInformation 戻る FILE_FS_OBJECTID_INFORMATION ボリュームのファイルシステム固有のオブジェクト ID 情報を含む構造。 このオブジェクト ID 情報は、オペレーティング システムが割り当てた (GUID ベースの) 一意のボリューム名と同じではありません。
FileFsSizeInformation 戻る FILE_FS_SIZE_INFORMATION 実行元のスレッドに関連付けられたユーザーが使用できるボリューム上のスペースの量に関する情報を含む構造体。IRP_MJ_QUERY_VOLUME_INFORMATION リクエスト。
FileFsVolumeInformation 戻る FILE_FS_VOLUME_INFORMATION これには、ボリューム ラベル、シリアル番号、作成時刻などのボリュームに関する情報が含まれます。
FileFsSectorSizeInformation 戻るFILE_FS_SECTOR_SIZE_INFORMATIONボリュームの物理セクター サイズと論理セクター サイズに関する情報を含む構造。
  • IrpSp->Parameters.QueryVolume.Length が指すバッファの長さ (バイト単位) です。Irp->UserBuffer 戻り時に、この変数はバッファに書き込まれたバイト数を受け取ります。

関連項目

FILE_FS_ATTRIBUTE_INFORMATION

FILE_FS_CONTROL_INFORMATION

FILE_FS_DEVICE_INFORMATION

FILE_FS_DRIVER_PATH_INFORMATION

FILE_FS_FULL_SIZE_INFORMATION

FILE_FS_OBJECTID_INFORMATION

FILE_FS_SECTOR_SIZE_INFORMATION

FILE_FS_SIZE_INFORMATION

FILE_FS_VOLUME_INFORMATION

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_SET_VOLUME_INFORMATION

ZwQueryVolumeInformationFile

ZwSetVolumeInformationFile