다음을 통해 공유


FilterReplyMessage 함수(fltuser.h)

FilterReplyMessage 함수는 커널 모드 미니필터의 메시지에 회신합니다.

구문

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

매개 변수

[in] hPort

FilterConnectCommunicationPort에 대한 이전 호출에서 반환된 통신 포트 핸들입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

[in] lpReplyBuffer

미니필터로 보낼 회신을 포함하는 호출자가 할당한 버퍼에 대한 포인터입니다. 회신에는 FILTER_REPLY_HEADER 구조가 포함되어야 하지만 그렇지 않으면 해당 형식이 호출자 정의입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

[in] dwReplyBufferSize

lpReplyBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다. 주의 섹션을 참조하십시오.

반환 값

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

설명

사용자 모드 애플리케이션은 FilterReplyMessage 함수를 호출하여 커널 모드 미니필터에서 받은 메시지에 회신합니다.

미니필터에서 메시지를 받으려면 FilterGetMessage를 호출합니다.

미니필터에 메시지를 보내려면 FilterSendMessage를 호출합니다.

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

중요  

(시스템별) 구조 패딩 요구 사항으로 인해 FltSendMessageFilterReplyMessage와 연결된 버퍼의 크기를 설정할 때 정확도가 필요합니다. 예를 들어 FilterReplyMessage를 통해 데이터를 미니필터로 보내야 한다고 가정합니다. 사용자 모드 구성 요소는 이렇게 하려면 다음 구조를 선언할 수 있습니다.

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

이 구조를 고려할 때 FilterReplyMessage의 호출자가 dwReplyBufferSize 매개 변수를 로 sizeof(REPLY_STRUCT) 설정하고 FltSendMessageReplyLength 매개 변수를 동일한 값으로 설정하는 것이 분명해 보일 수 있습니다. 그러나 구조 패딩 특이성 sizeof(REPLY_STRUCT) 으로 인해 가 보다 sizeof(FILTER_REPLY_HEADER) + sizeof(MY_STRUCT)클 수 있습니다. 이 경우 FltSendMessage 는 STATUS_BUFFER_OVERFLOW 반환합니다.

따라서 dwReplyBufferSizeReplyLength를 둘 다 대신 sizeof(REPLY_STRUCT)로 설정하여 FilterReplyMessageFltSendMessage(위의 예제를 활용)를 호출하는 sizeof(FILTER_REPLY_HEADER) + sizeof(MY_STRUCT) 것이 좋습니다. 이렇게 하면 REPLY_STRUCT 구조체의 끝에 있는 추가 안쪽 여백이 무시됩니다.

 

요구 사항

   
지원되는 최소 클라이언트 SP4, Windows XP SP2, Windows Server 2003 SP1 이상 운영 체제용 Microsoft Windows 2000 업데이트 롤업 1에서 사용할 수 있습니다. Windows 2000 SP4 및 이전 운영 체제에서는 사용할 수 없습니다.
대상 플랫폼 유니버설
헤더 fltuser.h(FltUser.h 포함)
라이브러리 FltLib.lib
DLL FltLib.dll

추가 정보

FILTER_REPLY_HEADER

FilterConnectCommunicationPort

FilterGetMessage

FilterSendMessage

FltSendMessage