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 함수는 동기 및 비동기(겹침) 작업을 위해 설계되었습니다.
lpOverlapped이 NULL이고 메시지를 사용할 수 있는 경우 FilterGetMessage는 즉시 반환됩니다. 그렇지 않으면 메시지를 받을 때까지 호출자가 대기 상태로 전환됩니다.
lpOverlapped이 NULL이 아니면 FilterGetMessage는 ERROR_IO_PENDING 반환합니다. 이 경우 FilterGetMessage가 반환되기 전에 lpOverlapped 구조체의 이벤트 개체가 부호 없는 상태로 설정됩니다. 메시지가 전달되면 이 이벤트는 신호를 받은 상태로 설정됩니다.
미니필터에서 메시지를 받은 후 호출자는 FilterReplyMessage를 호출하여 회신을 보낼 수 있습니다.
미니필터 또는 instance FltSendMessage를 호출하여 사용자 모드 애플리케이션에 메시지를 보냅니다.
요구 사항
대상 플랫폼 | 유니버설 |
헤더 | fltuser.h(Fltuser.h 포함) |
라이브러리 | FltLib.lib |
DLL | FltLib.dll |