共用方式為


PFLT_MESSAGE_NOTIFY回呼函式 (fltkernel.h)

FltMgr 每當使用者模式 應用程式呼叫 filterSendMessage,以透過用戶端埠將訊息傳送至迷你篩選程式的 MessageNotifyCallback 回呼函式時,FltMgr。

語法

PFLT_MESSAGE_NOTIFY PfltMessageNotify;

NTSTATUS PfltMessageNotify(
  PVOID PortCookie,
  PVOID InputBuffer,
  ULONG InputBufferLength,
  PVOID OutputBuffer,
  ULONG OutputBufferLength,
  PULONG ReturnOutputBufferLength
)
{...}

參數

PortCookie

[in]可唯一識別此用戶端埠之迷你篩選定義資訊的指標。 建立用戶端埠時,迷你篩選程式會在其 ConnectNotifyCallback 例程的 ConnectionPortCookie 參數中傳回此內容指標。

InputBuffer

[in]呼叫端配置的緩衝區指標,其中包含要傳送至迷你篩選的訊息。

InputBuffer 是未經鎖定的使用者模式緩衝區指標。 此指標只在使用者模式進程的內容中有效,而且只能從 try/except 區塊記憶體取。

FltMgr 會呼叫 ProbeForRead 來驗證此指標,但無法確保緩衝區已正確對齊。 如果緩衝區包含具有對齊需求的結構,迷你篩選會負責執行任何必要的對齊檢查。 若要這樣做,迷你篩選程式可以使用 IS_ALIGNED 宏,如 MiniSpy 範例迷你篩選器所示。

這個參數是選擇性的,而且可以是 NULL。

InputBufferLength

[in]InputBuffer 指向的緩衝區大小,以位元組為單位。 如果 inputBuffer 為 NULL,則會忽略此參數

OutputBuffer

[out]從迷你篩選接收回復之呼叫端配置的緩衝區指標,如果有的話。

OutputBuffer 是原始、解除鎖定的使用者模式緩衝區指標。 此指標只在使用者模式進程的內容中有效,而且只能從 try/except 區塊記憶體取。

FltMgr 呼叫 ProbeForWrite 來驗證此指標,但無法確保緩衝區已正確對齊。 如果緩衝區包含具有對齊需求的結構,迷你篩選會負責執行任何必要的對齊檢查。 若要這樣做,迷你篩選程式可以使用 IS_ALIGNED 宏,如 MiniSpy 範例迷你篩選器所示。

這個參數是選擇性的,而且可以是 NULL。

OutputBufferLength

[in]OutputBuffer 指向的緩衝區大小,以位元組為單位。 如果 outputBuffer 為 NULL,則會忽略此參數。

ReturnOutputBufferLength

[out]呼叫端配置的變數指標,該變數會接收 OutputBuffer 指向之緩衝區中傳回的位元組數目。

傳回值

如果作業成功,MessageNotifyCallback 會傳回STATUS_SUCCESS。 否則,它會傳回適當的NTSTATUS值,例如:

傳回碼 意義
STATUS_INSUFFICIENT_RESOURCES 沒有足夠的資源來完成作業。
STATUS_INVALID_PARAMETER 一或多個輸入參數無效。

言論

迷你篩選程式可以選擇性地實作 messageNotifyCallback。 如果迷你篩選程式未實作此回呼,則從使用者模式傳送數據到埠的任何要求都會收到錯誤。

如需詳細資訊,請參閱 使用者模式與迷你篩選之間的通訊

要求

要求 價值
標頭 fltkernel.h
連結庫 FltMgr.lib
DLL FltMgr.sys
IRQL PASSIVE_LEVEL

另請參閱

ConnectNotifyCallback

FilterSendMessage

FltCreateCommunicationPort