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

送信時

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

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

ファイル システム ドライバーは、ファイル オブジェクトを抽出およびデコードして、それがユーザー ボリュームが開いているかどうかを判断する必要があります。 存在する場合、ファイル システム ドライバーは適切なボリューム情報を設定し、IRP を完了する必要があります。 それ以外の場合、ファイル システムはボリューム情報を設定せずに、必要に応じて IRP を完了する必要があります。

設定できるボリューム情報のタイプはファイル システムによって異なりますが、通常は次の値が 1 つ以上含まれます。

  • FileFsControlInformation
  • FileFsLabelInformation
  • FileFsObjectIdInformation

考えられるすべての情報タイプのリストについては、ntifs.h 内の FS_INFORMATION_CLASS 列挙を参照してください。

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

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

パラメーター

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

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

  • Irp->AssociatedIrp.SystemBuffer 設定するボリューム情報の値を含む入力バッファーへのポインター。 この情報は、次のいずれかの構造に保存されます。

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

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

    IrpSp->FileObject パラメーターには、FILE_OBJECT構造体でもある RelatedFileObject フィールドへのポインターが含まれています。 RelatedFileObject FILE_OBJECT 構造体のフィールドは、IRP_MJ_SET_VOLUME_INFORMATION の処理中は無効であるため、使用しないでください。

  • IrpSp->MajorFunction は IRP_MJ_SET_VOLUME_INFORMATION に設定されます。

  • IrpSp->Parameters.SetVolume.FsInformationClass ボリュームに設定する情報のタイプで、次のいずれかになります。

    Value 意味
    FileFsControlInformation 設定 FILE_FS_CONTROL_INFORMATION ボリュームに関しては。
    FileFsLabelInformation 設定 FILE_FS_LABEL_INFORMATION ボリュームに関しては。
    FileFsObjectIdInformation 設定 FILE_FS_OBJECTID_INFORMATION ボリュームに関しては。
  • IrpSp->Parameters.SetVolume.Length が指すバッファの長さ (バイト単位) です。Irp->AssociatedIrp.SystemBuffer.

関連項目

FILE_FS_CONTROL_INFORMATION

FILE_FS_LABEL_INFORMATION

FILE_FS_OBJECTID_INFORMATION

IO_STACK_LOCATION

IO_STATUS_BLOCK

IoGetCurrentIrpStackLocation

IRP

IRP_MJ_QUERY_VOLUME_INFORMATION

ZwQueryVolumeInformationFile

ZwSetVolumeInformationFile