PFLT_MESSAGE_NOTIFY fungsi panggilan balik (fltkernel.h)
Sintaksis
PFLT_MESSAGE_NOTIFY PfltMessageNotify;
NTSTATUS PfltMessageNotify(
PVOID PortCookie,
PVOID InputBuffer,
ULONG InputBufferLength,
PVOID OutputBuffer,
ULONG OutputBufferLength,
PULONG ReturnOutputBufferLength
)
{...}
Parameter
PortCookie
[di] Pointer ke informasi yang ditentukan minifilter yang secara unik mengidentifikasi port klien ini. Ketika port klien dibuat, minifilter mengembalikan penunjuk konteks ini dalam parameter
InputBuffer
[di] Penunjuk ke buffer yang dialokasikan pemanggil yang berisi pesan yang akan dikirim ke minifilter.
InputBuffer adalah penunjuk ke buffer mode pengguna mentah yang tidak terkunci. Penunjuk ini hanya valid dalam konteks proses mode pengguna dan hanya boleh diakses dari dalam coba/kecuali blok.
FltMgr memanggil ProbeForRead untuk memvalidasi pointer ini, tetapi tidak memastikan bahwa buffer diselaraskan dengan benar. Jika buffer berisi struktur yang memiliki persyaratan penyelarasan, minifilter bertanggung jawab untuk melakukan pemeriksaan penyelarasan yang diperlukan. Untuk melakukan ini, minifilter dapat menggunakan makro IS_ALIGNED seperti yang ditunjukkan dalam minifilter sampel MiniSpy.
Parameter ini bersifat opsional dan dapat berupa NULL.
InputBufferLength
[di] Ukuran, dalam byte, dari buffer yang InputBuffer menunjuk. Parameter ini diabaikan jika InputBuffer adalah NULL.
OutputBuffer
[out] Pointer ke buffer yang dialokasikan pemanggil yang menerima balasan, jika ada, dari minifilter.
OutputBuffer adalah penunjuk ke buffer mode pengguna mentah yang tidak terkunci. Penunjuk ini hanya valid dalam konteks proses mode pengguna dan hanya boleh diakses dari dalam coba/kecuali blok.
FltMgr memanggil ProbeForWrite untuk memvalidasi pointer ini, tetapi tidak memastikan bahwa buffer diselaraskan dengan benar. Jika buffer berisi struktur yang memiliki persyaratan penyelarasan, minifilter bertanggung jawab untuk melakukan pemeriksaan penyelarasan yang diperlukan. Untuk melakukan ini, minifilter dapat menggunakan makro IS_ALIGNED seperti yang ditunjukkan dalam minifilter sampel MiniSpy.
Parameter ini bersifat opsional dan dapat berupa NULL.
OutputBufferLength
[di] Ukuran, dalam byte, buffer yang OutputBuffer menunjuk. Parameter ini diabaikan jika OutputBuffer ADALAH NULL.
ReturnOutputBufferLength
[out] Penunjuk ke variabel yang dialokasikan pemanggil yang menerima jumlah byte yang dikembalikan dalam buffer yang OutputBuffer menunjuk.
Mengembalikan nilai
MessageNotifyCallback mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, nilai NTSTATUS yang sesuai seperti:
Mengembalikan kode | Arti |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Tidak ada cukup sumber daya untuk menyelesaikan operasi. |
STATUS_INVALID_PARAMETER | Satu atau beberapa parameter input tidak valid. |
Komentar
Minifilter dapat secara opsional menerapkan MessageNotifyCallback. Jika minifilter tidak menerapkan panggilan balik ini, permintaan apa pun yang dibuat dari mode pengguna untuk mengirim data ke port akan menerima kesalahan.
Untuk informasi selengkapnya, lihat Komunikasi antara mode pengguna dan minifilter.
Persyaratan
Syarat | Nilai |
---|---|
Header |
fltkernel.h |
Pustaka |
FltMgr.lib |
DLL |
FltMgr.sys |
IRQL | PASSIVE_LEVEL |