IRP_MJ_QUERY_VOLUME_INFORMATION (FS dan driver filter)

Ketika Dikirim

Manajer I/O mengirimkan permintaan IRP_MJ_QUERY_VOLUME_INFORMATION . Ini dapat dikirim, misalnya, ketika aplikasi mode pengguna telah memanggil fungsi Win32 seperti GetDiskFreeSpace atau GetFileType.

Operasi: Driver Sistem File

Driver sistem file harus mengekstrak dan mendekode objek file untuk menentukan apakah objek perangkat target adalah objek perangkat kontrol sistem file. Jika ya, dan jika permintaan telah dikeluarkan pada handel yang merupakan volume terbuka (atau terbukanya objek pada volume), driver sistem file harus memproses permintaan dan menyelesaikan IRP.

Jika tidak, driver sistem file harus gagal kueri dan menyelesaikan IRP.

Jenis informasi volume yang dapat dikueri bergantung pada sistem file, tetapi umumnya menyertakan nilai berikut:

  • FileFsAttributeInformation
  • FileFsDeviceInformation
  • FileFsSizeInformation
  • FileFsVolumeInformation

Untuk daftar semua jenis informasi yang mungkin, lihat IrpSp-Parameters.QueryVolume.FsInformationClass>.

Operasi: Driver Pengalihan Jaringan

Pengalih jaringan yang menerima permintaan untuk FileFsDeviceInformation, harus menyertakan FILE_REMOTE_DEVICE sebagai salah satu opsi untuk anggota DeviceCharacteristics dari struktur FILE_FS_DEVICE_INFORMATION yang dikembalikan.

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 kueri:

  • DeviceObject adalah penunjuk ke objek perangkat target.

  • Irp->AssociatedIrp.SystemBuffer menunjuk ke buffer output yang disediakan sistem tempat informasi volume akan dikembalikan. Informasi ini disimpan dalam salah satu struktur berikut:

    • 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

    Kelas FileFsVolumeFlagsInformation dan struktur FILE_FS_VOLUME_INFORMATION terkait tersedia di Windows Vista dan versi yang lebih baru.

  • Irp->IoStatus menunjuk ke struktur IO_STATUS_BLOCK yang menerima status penyelesaian akhir dan informasi tentang operasi yang diminta.

  • Irp->UserBuffer adalah penunjuk opsional ke buffer output yang disediakan penelepon tempat konten Irp-AssociatedIrp.SystemBuffer> disalin selama penyelesaian I/O oleh manajer I/O. Driver tidak menggunakan buffer ini untuk mengembalikan data apa pun untuk permintaan tersebut.

  • IrpSp->FileObject menunjuk ke objek file yang terkait dengan DeviceObject.

    ParameterIrpSp-FileObject> berisi penunjuk ke bidang RelatedFileObject, yang juga merupakan struktur FILE_OBJECT. Bidang RelatedFileObject dari struktur FILE_OBJECT tidak valid selama pemrosesan IRP_MJ_QUERY_VOLUME_INFORMATION dan tidak boleh digunakan.

  • IrpSp->MajorFunction diatur ke IRP_MJ_QUERY_VOLUME_INFORMATION.

  • IrpSp->Parameters.QueryVolume.FsInformationClass adalah jenis informasi volume yang akan dikembalikan oleh sistem file. Anggota ini bisa menjadi salah satu nilai berikut.

Nilai Makna
FileFsAttributeInformation Mengembalikan struktur FILE_FS_ATTRIBUTE_INFORMATION yang berisi informasi atribut tentang sistem file yang bertanggung jawab atas volume.
FileFsControlInformation Mengembalikan struktur FILE_FS_CONTROL_INFORMATION yang berisi informasi kontrol sistem file tentang volume.
FileFsDeviceInformation Mengembalikan struktur FILE_FS_DEVICE_INFORMATION yang berisi informasi perangkat untuk volume.
FileFsDriverPathInformation Mengembalikan struktur FILE_FS_DRIVER_PATH_INFORMATION yang berisi informasi tentang apakah driver yang ditentukan berada di jalur I/O untuk volume. Penangkal permintaan IRP_MJ_QUERY_VOLUME_INFORMATION harus menyimpan nama driver ke dalam struktur FILE_FS_DRIVER_PATH_INFORMATION sebelum mengirim IRP ke tumpukan perangkat volume sistem file.
FileFsFullSizeInformation Mengembalikan struktur FILE_FS_FULL_SIZE_INFORMATION yang berisi informasi tentang jumlah total ruang yang tersedia pada volume.
FileFsObjectIdInformation Mengembalikan struktur FILE_FS_OBJECTID_INFORMATION yang berisi informasi ID objek khusus sistem file untuk volume. Informasi ID objek ini tidak sama dengan nama volume unik (berbasis GUID) yang ditetapkan sistem operasi.
FileFsSizeInformation Mengembalikan struktur FILE_FS_SIZE_INFORMATION yang berisi informasi tentang jumlah ruang pada volume yang tersedia untuk pengguna yang terkait dengan utas yang berasal dari permintaan IRP_MJ_QUERY_VOLUME_INFORMATION .
FileFsVolumeInformation Mengembalikan FILE_FS_VOLUME_INFORMATION yang berisi informasi tentang volume seperti label volume, nomor seri, dan waktu pembuatan.
FileFsSectorSizeInformation Mengembalikan struktur FILE_FS_SECTOR_SIZE_INFORMATION yang berisi informasi tentang ukuran sektor fisik dan logis volume.
  • IrpSp->Parameters.QueryVolume.Length adalah panjang, dalam byte, dari buffer yang diacu oleh Irp-UserBuffer>. Saat kembali, variabel ini menerima jumlah byte yang ditulis ke buffer.

Lihat juga

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