PFLT_MESSAGE_NOTIFY回呼函式 (fltkernel.h)
語法
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 |