Fungsi FltGetSwappedBufferMdlAddress (fltkernel.h)
Rutinitas FltGetSwappedBufferMdlAddress mengembalikan alamat daftar deskriptor memori (MDL) untuk buffer yang ditukar oleh driver minifilter.
Sintaks
PMDL FltGetSwappedBufferMdlAddress(
[in] PFLT_CALLBACK_DATA CallbackData
);
Parameter
[in] CallbackData
Arahkan ke struktur data panggilan balik untuk operasi.
Nilai kembali
FltGetSwappedBufferMdlAddress mengembalikan alamat MDL untuk buffer yang ditukar oleh pemanggil. FltGetSwappedBufferMdlAddress mengembalikan NULL dalam kasus berikut:
- Operasi ini adalah operasi I/O yang cepat. Dalam operasi I/O yang cepat, buffer tidak dapat memiliki MDL.
- Buffer yang ditukar oleh pemanggil tidak memiliki MDL.
- Driver minifilter tidak menukar buffer dalam rutinitas panggilan balik praoperasi.
Keterangan
Driver minifilter yang bertukar di buffer baru dalam rutinitas panggilan balik praoperasi bisa mendapatkan alamat MDL untuk buffer dengan memanggil FltGetSwappedBufferMdlAddress dari rutinitas panggilan balik pascaoperasi yang sesuai.
Rutinitas FltGetSwappedBufferMdlAddress diperlukan karena rutinitas panggilan balik pascaoperasi menerima struktur data panggilan balik yang berisi buffer asli dan alamat MDL, bukan yang ditukar oleh rutinitas panggilan balik praoperasi penelepon.
Dimungkinkan bagi FltGetSwappedBufferMdlAddress untuk mengembalikan nilai MDL non-NULL meskipun pemanggil tidak membuat MDL untuk buffer tempatnya ditukar. Ini terjadi ketika MDL dibuat untuk buffer oleh driver minifilter, driver filter warisan, atau driver sistem file yang berada di bawah pemanggil di driver minifilter atau tumpukan driver sistem file.
Dimungkinkan juga bagi FltGetSwappedBufferMdlAddress untuk mengembalikan nilai MDL non-NULL bahkan jika pemanggil tidak bertukar di buffer baru dalam rutinitas panggilan balik praoperasinya. Ini terjadi dalam operasi, seperti Paging I/O, di mana buffer adalah NULL, dan pemanggil bertukar di alamat MDL baru.
MDL untuk buffer yang ditukar oleh pemanggil secara otomatis dikosongkan oleh Manajer Filter ketika rutinitas panggilan balik pascaoperasi kembali. Untuk mencegah MDL ini dikosongkan, panggil FltRetainSwappedBufferMdlAddress.
FltGetSwappedBufferMdlAddress hanya dapat dipanggil dari rutinitas panggilan balik pascaoperasi.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | fltkernel.h (termasuk Fltkernel.h) |
Pustaka | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | Tingkat apa pun |
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