Bagikan melalui


Fungsi FilterReplyMessage (fltuser.h)

Fungsi FilterReplyMessage membalas pesan dari minifilter mode kernel.

Sintaks

HRESULT FilterReplyMessage(
  [in] HANDLE               hPort,
  [in] PFILTER_REPLY_HEADER lpReplyBuffer,
  [in] DWORD                dwReplyBufferSize
);

Parameter

[in] hPort

Handel port komunikasi dikembalikan oleh panggilan sebelumnya ke FilterConnectCommunicationPort. Parameter ini diperlukan dan tidak boleh NULL.

[in] lpReplyBuffer

Penunjuk ke buffer yang dialokasikan penelepon yang berisi balasan yang akan dikirim ke minifilter. Balasan harus berisi struktur FILTER_REPLY_HEADER , tetapi jika tidak, formatnya ditentukan pemanggil. Parameter ini diperlukan dan tidak boleh NULL.

[in] dwReplyBufferSize

Ukuran, dalam byte, dari buffer yang dirujuk oleh parameter lpReplyBuffer . Lihat bagian Keterangan.

Nilai kembali

FilterReplyMessage mengembalikan S_OK jika berhasil. Jika tidak, ia mengembalikan nilai kesalahan.

Keterangan

Aplikasi mode pengguna memanggil fungsi FilterReplyMessage untuk membalas pesan yang diterima dari minifilter mode kernel.

Untuk mendapatkan pesan dari minifilter, panggil FilterGetMessage.

Untuk mengirim pesan ke minifilter, panggil FilterSendMessage.

Minifilter mengirim pesan ke aplikasi mode pengguna dengan memanggil FltSendMessage.

Penting  

Karena persyaratan padding struktur (khusus sistem), akurasi diperlukan ketika Anda mengatur ukuran buffer yang terkait dengan FltSendMessage dan FilterReplyMessage. Sebagai contoh, asumsikan data harus dikirim (melalui FilterReplyMessage) ke minifilter. Komponen mode pengguna mungkin mendeklarasikan struktur berikut untuk melakukannya:

typedef struct _REPLY_STRUCT
{
     FILTER_REPLY_HEADER Header;
     MY_STRUCTURE Data;  // The structure to be sent to the minifilter.
} REPLY_STRUCT, *PREPLY_STRUCT;

Mengingat struktur ini, mungkin tampak jelas bahwa pemanggil FilterReplyMessage akan mengatur parameter dwReplyBufferSize ke sizeof(REPLY_STRUCT) dan parameter ReplyLengthFltSendMessage ke nilai yang sama. Namun, karena struktur idiosyncrasi padding, sizeof(REPLY_STRUCT) mungkin lebih besar dari sizeof(FILTER_REPLY_HEADER) + sizeof(MY_STRUCT). Jika demikian, FltSendMessage mengembalikan STATUS_BUFFER_OVERFLOW.

Oleh karena itu, kami sarankan Anda memanggil FilterReplyMessage dan FltSendMessage (memanfaatkan contoh di atas) dengan mengatur dwReplyBufferSize dan ReplyLength ke sizeof(FILTER_REPLY_HEADER) + sizeof(MY_STRUCT) bukan sizeof(REPLY_STRUCT). Ini memastikan bahwa setiap padding tambahan di akhir struktur REPLY_STRUCT diabaikan.

 

Persyaratan

   
Klien minimum yang didukung Tersedia di Microsoft Windows 2000 Update Rollup 1 untuk SP4, Windows XP SP2, Windows Server 2003 SP1, dan sistem operasi yang lebih baru. Tidak tersedia di Windows 2000 SP4 dan sistem operasi yang lebih lama.
Target Platform Universal
Header fltuser.h (termasuk FltUser.h)
Pustaka FltLib.lib
DLL FltLib.dll

Lihat juga

FILTER_REPLY_HEADER

FilterConnectCommunicationPort

FilterGetMessage

FilterSendMessage

FltSendMessage