共用方式為


FilterGetMessage 函式 (fltuser.h)

FilterGetMessage函式會從核心模式迷你篩選取得訊息。

語法

HRESULT FilterGetMessage(
  [in]      HANDLE                 hPort,
  [out]     PFILTER_MESSAGE_HEADER lpMessageBuffer,
  [in]      DWORD                  dwMessageBufferSize,
  [in, out] LPOVERLAPPED           lpOverlapped
);

參數

[in] hPort

先前呼叫 FilterConnectCommunicationPort所傳回的通訊埠控制碼。 這個參數是必要的,而且不能是 Null

[out] lpMessageBuffer

從迷你篩選接收訊息的呼叫端配置緩衝區指標。 訊息必須包含 FILTER_MESSAGE_HEADER 結構,否則其格式為呼叫端定義。 這個參數是必要的,而且不能是 Null

[in] dwMessageBufferSize

lpMessageBuffer參數指向的緩衝區大小,以位元組為單位。

[in, out] lpOverlapped

重迭結構的指標。 這個參數是選擇性的,而且可以是 Null。 如果不是 Null,呼叫端必須將 OVERLAPPED 結構的 hEvent 成員初始化為有效的事件控制碼或 Null

傳回值

如果成功,FilterGetMessage會傳回S_OK。 否則,它會傳回錯誤值。

備註

FilterGetMessage函式是針對同步和非同步 (重迭) 作業所設計。

lpOverlappedNull且訊息可供使用時, FilterGetMessage 會立即傳回。 否則,呼叫端會進入等候狀態,直到收到訊息為止。

如果 lpOverlapped 不是 NullFilterGetMessage 會傳回ERROR_IO_PENDING。 在此情況下, lpOverlapped 結構中的事件物件會在 FilterGetMessage 傳回之前設定為非ignaled 狀態。 傳遞訊息時,此事件會設定為已發出訊號的狀態。

從迷你篩選接收訊息之後,呼叫端可以藉由呼叫 FilterReplyMessage來傳送回復。

迷你篩選或實例會呼叫 FltSendMessage,將訊息傳送至使用者模式應用程式。

需求

   
目標平台 Universal
標頭 fltuser.h (包含 Fltuser.h)
程式庫 FltLib.lib
Dll FltLib.dll

另請參閱

CreateEvent

FILTER_MESSAGE_HEADER

FilterConnectCommunicationPort

FilterReplyMessage

FilterSendMessage

FltSendMessage

GetOverlappedResult

HasOverlappedIoCompleted