IRP_MJ_QUERY_EA (FS dan driver filter)
Ketika Dikirim
Manajer I/O, komponen sistem operasi lainnya, dan driver mode kernel lainnya mengirim permintaan IRP_MJ_QUERY_EA ketika aplikasi mode pengguna telah meminta informasi tentang atribut file yang diperluas.
Operasi: Driver Sistem File
Jika sistem file mendukung atribut yang diperluas, driver sistem file harus memproses kueri dan menyelesaikan IRP. Jika tidak, itu harus mengembalikan STATUS_EAS_NOT_SUPPORTED.
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 IRP_MJ_QUERY_EA:
DeviceObject adalah penunjuk ke objek perangkat target.
Irp->AssociatedIrp.SystemBuffer menunjuk ke buffer output yang disediakan sistem untuk digunakan sebagai buffer sistem perantara. Digunakan untuk I/O METHOD_BUFFERED.
Irp->IoStatus menunjuk ke struktur IO_STATUS_BLOCK yang menerima status penyelesaian akhir dan informasi tentang operasi yang diminta.
Irp->MdlAddress adalah alamat daftar deskriptor memori (MDL) yang menjelaskan buffer output yang menerima informasi atribut yang diperluas. Digunakan untuk I/O METHOD_DIRECT.
Irp->UserBuffer menunjuk ke buffer output terstruktur FILE_FULL_EA_INFORMATION yang disediakan penelepon yang menerima informasi atribut yang diperluas. Digunakan untuk I/O METHOD_NEITHER.
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_QUERY_EA dan tidak boleh digunakan.
IrpSp->Bendera dapat berupa satu atau beberapa nilai berikut.
Bendera | Makna |
---|---|
SL_INDEX_SPECIFIED | Mulai pemindaian pada entri dalam daftar atribut yang diperluas yang indeksnya diberikan oleh IrpSp-Parameters.QueryEa.EaIndex>. |
SL_RESTART_SCAN | Mulai pemindaian pada entri pertama dalam daftar. Jika bendera ini tidak diatur, lanjutkan pemindaian dari permintaan IRP_MJ_QUERY_EA sebelumnya. |
SL_RETURN_SINGLE_ENTRY | Kembalikan hanya entri pertama yang ditemukan. |
IrpSp->MajorFunction diatur ke IRP_MJ_QUERY_EA.
IrpSp->Parameters.QueryEa.EaIndex adalah indeks entri untuk mulai memindai daftar atribut yang diperluas. Parameter ini diabaikan jika bendera SL_INDEX_SPECIFIED tidak diatur atau jika IrpSp-Parameters.QueryEa.EaList> menunjuk ke daftar yang tidak ada.
IrpSp->Parameters.QueryEa.EaList menunjuk ke buffer input terstruktur FILE_GET_EA_INFORMATION yang disediakan penelepon yang menentukan atribut yang diperluas yang akan dikueri.
IrpSp->Parameters.QueryEa.EaListLength adalah panjang byte buffer yang diacu oleh IrpSp-Parameters.QueryEa.EaList>.
IrpSp->Parameters.QueryEa.Length adalah panjang dalam byte buffer output.
Keterangan
Ketika buffer pendek disediakan dan STATUS_BUFFER_OVERFLOW dikembalikan, NTFS mengembalikan seluruh entri FILE_FULL_EA_INFORMATION terakhir yang pas. Ketika buffer pendek disediakan dan STATUS_BUFFER_TOO_SMALL dikembalikan, NTFS tidak dapat memuat entri FILE_FULL_EA_INFORMATION apa pun.
Pada Windows Vista dan yang lebih baru, FAT16 tidak lagi mendukung atribut yang diperluas.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk