Bagikan melalui


PFLT_MESSAGE_NOTIFY fungsi panggilan balik (fltkernel.h)

FltMgr memanggil fungsi panggilan balik MessageNotifyCallback minifilter setiap kali aplikasi mode pengguna memanggil FilterSendMessage untuk mengirim pesan ke minifilter melalui port klien.

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 ConnectionPortCookie dari ConnectNotifyCallback rutinitasnya.

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

Lihat juga

ConnectNotifyCallback

FilterSendMessage

FltCreateCommunicationPort