IRP_MJ_SET_VOLUME_INFORMATION

傳送時

IRP_MJ_SET_VOLUME_INFORMATION要求是由 I/O 管理員傳送。 例如,當使用者模式應用程式呼叫 Microsoft Win32 函式,例如 SetVolumeLabel時,可以傳送它。

作業:檔案系統驅動程式

檔案系統驅動程式應該擷取並解碼檔案物件,以判斷它是否代表開啟的使用者磁片區。 如果這樣做,檔案系統驅動程式應該設定適當的磁片區資訊並完成 IRP。 否則,檔案系統應該適當地完成 IRP,而不需設定磁片區資訊。

可設定的磁片區資訊類型與檔案系統相依,但通常包含下列其中一或多個:

FileFsControlInformation

FileFsLabelInformation

FileFsObjectIdInformation

如需所有可能資訊類型的清單,請參閱 ntifs.h 中的 FS_INFORMATION_CLASS 列舉。

作業:檔案系統篩選驅動程式

篩選驅動程式應該會將此 IRP 向下傳遞至堆疊上的下一個較低驅動程式。

參數

檔案系統或篩選驅動程式會使用指定的 IRP 呼叫 IoGetCurrentIrpStackLocation ,以取得 IRP 中本身 堆疊位置 的指標,如下列清單所示的 IrpSp。 (IRP 會顯示為 Irp.) 驅動程式可以使用下列 IRP 成員中設定的資訊,以及處理集合磁片區資訊要求中的 IRP 堆疊位置:

DeviceObject
目標裝置物件的指標。

Irp-AssociatedIrp.SystemBuffer >
輸入緩衝區的指標,其中包含要設定之磁片區資訊的值。 此資訊會儲存在下列其中一個結構中:

FILE_FS_CONTROL_INFORMATION

FILE_FS_LABEL_INFORMATION

FILE_FS_OBJECTID_INFORMATION

Irp- >IoStatusIO_STATUS_BLOCK 結構的指標,可接收最終完成狀態和所要求作業的相關資訊。

IrpSp- >FileObjectDeviceObject相關聯的檔案物件指標。

IrpSp-FileObject >參數包含RelatedFileObject欄位的指標,這也是FILE_OBJECT結構。 FILE_OBJECT 結構的 RelatedFileObject 欄位在處理IRP_MJ_SET_VOLUME_INFORMATION期間無效,不應使用。

IrpSp- >MajorFunction 指定IRP_MJ_SET_VOLUME_INFORMATION。

IrpSp- >Parameters.SetVolume.FsInformationClass 指定要為磁片區設定的資訊類型。 這個值可以是下列其中一個值:

意義

FileFsControlInformation

設定 磁片區的FILE_FS_CONTROL_INFORMATION

FileFsLabelInformation

設定磁片區的 FILE_FS_LABEL_INFORMATION

FileFsObjectIdInformation

設定磁片區的 FILE_FS_OBJECTID_INFORMATION

IrpSp- >Parameters.SetVolume.Length 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