IRP_MJ_SET_VOLUME_INFORMATION (FS dan driver filter)
Ketika Dikirim
Manajer I/O mengirimkan permintaan IRP_MJ_SET_VOLUME_INFORMATION. Ini dapat dikirim, misalnya, ketika aplikasi mode pengguna telah memanggil fungsi Win32 seperti SetVolumeLabel.
Operasi: Driver Sistem File
Driver sistem file harus mengekstrak dan mendekode objek file untuk menentukan apakah mewakili volume pengguna terbuka. Jika ya, driver sistem file harus mengatur informasi volume yang sesuai dan menyelesaikan IRP. Jika tidak, sistem file harus menyelesaikan IRP sebagaimana mestinya tanpa mengatur informasi volume.
Jenis informasi volume yang dapat diatur bergantung pada sistem file, tetapi umumnya menyertakan satu atau beberapa nilai berikut:
- FileFsControlInformation
- FileFsLabelInformation
- FileFsObjectIdInformation
Untuk daftar semua jenis informasi yang mungkin, lihat enumerasi FS_INFORMATION_CLASS di ntifs.h.
Operasi: Driver Filter Sistem File Warisan
Driver filter harus meneruskan IRP ini ke driver berikutnya yang lebih rendah pada tumpukan.
Parameter
Sistem file atau driver filter memanggil IoGetCurrentIrpStackLocation untuk IRP yang diberikan untuk mendapatkan penunjuk ke lokasi tumpukannya sendiri di IRP. Dalam parameter berikut, Irp menunjuk ke IRP dan IrpSp menunjuk ke IO_STACK_LOCATION. Driver dapat menggunakan informasi yang diatur dalam anggota IRP berikut dan lokasi tumpukan IRP untuk memproses permintaan informasi volume yang ditetapkan:
DeviceObject adalah penunjuk ke objek perangkat target.
Irp->AssociatedIrp.SystemBuffer menunjuk ke buffer input yang berisi nilai informasi volume yang akan diatur. Informasi ini disimpan dalam salah satu struktur berikut:
- FILE_FS_CONTROL_INFORMATION
- FILE_FS_LABEL_INFORMATION
- FILE_FS_OBJECTID_INFORMATION
Irp->IoStatus menunjuk ke struktur IO_STATUS_BLOCK yang menerima status penyelesaian akhir dan informasi tentang operasi yang diminta.
IrpSp->FileObject menunjuk ke objek file yang terkait dengan DeviceObject.
Parameter IrpSp-FileObject> berisi penunjuk ke bidang RelatedFileObject, yang juga merupakan struktur FILE_OBJECT. Bidang RelatedFileObject dari struktur FILE_OBJECT tidak valid selama pemrosesan IRP_MJ_SET_VOLUME_INFORMATION dan tidak boleh digunakan.
IrpSp->MajorFunction diatur ke IRP_MJ_SET_VOLUME_INFORMATION.
IrpSp->Parameters.SetVolume.FsInformationClass adalah jenis informasi yang akan diatur untuk volume, dan dapat menjadi salah satu hal berikut:
Nilai Makna FileFsControlInformation Atur FILE_FS_CONTROL_INFORMATION untuk volume. FileFsLabelInformation Atur FILE_FS_LABEL_INFORMATION untuk volume. FileFsObjectIdInformation Atur FILE_FS_OBJECTID_INFORMATION untuk volume. IrpSp->Parameters.SetVolume.Length adalah panjang, dalam byte, dari buffer yang diacu oleh Irp-AssociatedIrp.SystemBuffer>.