Share via


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

OVERLAPPED 구조체에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. NULL이 아닌 경우 호출자는 OVERLAPPED 구조체의 hEvent 멤버를 유효한 이벤트 핸들 또는 NULL로 초기화해야 합니다.

반환 값

FilterGetMessage는 성공하면 S_OK 반환합니다. 그렇지 않으면 오류 값이 반환됩니다.

설명

FilterGetMessage 함수는 동기 및 비동기(겹침) 작업을 위해 설계되었습니다.

lpOverlappedNULL이고 메시지를 사용할 수 있는 경우 FilterGetMessage는 즉시 반환됩니다. 그렇지 않으면 메시지를 받을 때까지 호출자가 대기 상태로 전환됩니다.

lpOverlappedNULL이 아니면 FilterGetMessage는 ERROR_IO_PENDING 반환합니다. 이 경우 FilterGetMessage가 반환되기 전에 lpOverlapped 구조체의 이벤트 개체가 부호 없는 상태로 설정됩니다. 메시지가 전달되면 이 이벤트는 신호를 받은 상태로 설정됩니다.

미니필터에서 메시지를 받은 후 호출자는 FilterReplyMessage를 호출하여 회신을 보낼 수 있습니다.

미니필터 또는 instance FltSendMessage를 호출하여 사용자 모드 애플리케이션에 메시지를 보냅니다.

요구 사항

   
대상 플랫폼 유니버설
헤더 fltuser.h(Fltuser.h 포함)
라이브러리 FltLib.lib
DLL FltLib.dll

추가 정보

CreateEvent

FILTER_MESSAGE_HEADER

FilterConnectCommunicationPort

FilterReplyMessage

FilterSendMessage

FltSendMessage

GetOverlappedResult

HasOverlappedIoCompleted