Compartilhar via


Função FilterGetMessage (fltuser.h)

A função FilterGetMessage obtém uma mensagem de um minifiltro no modo kernel.

Sintaxe

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

Parâmetros

[in] hPort

Identificador de porta de comunicação retornado por uma chamada anterior para FilterConnectCommunicationPort. Esse parâmetro é necessário e não pode ser NULL.

[out] lpMessageBuffer

Ponteiro para um buffer alocado pelo chamador que recebe a mensagem do minifiltro. A mensagem deve conter uma estrutura FILTER_MESSAGE_HEADER , mas caso contrário, seu formato é definido pelo chamador. Esse parâmetro é necessário e não pode ser NULL.

[in] dwMessageBufferSize

Tamanho, em bytes, do buffer para o qual o parâmetro lpMessageBuffer aponta.

[in, out] lpOverlapped

Ponteiro para uma estrutura OVERLAPPED. Esse parâmetro é opcional e pode ser NULL. Se não for NULL, o chamador deverá inicializar o membro hEvent da estrutura OVERLAPPED para um identificador de evento válido ou NULL.

Valor retornado

FilterGetMessage retornará S_OK se tiver êxito. Caso contrário, ele retornará um valor de erro.

Comentários

A função FilterGetMessage foi projetada para a operação síncrona e assíncrona (sobreposta).

Quando lpOverlapped é NULL e uma mensagem está disponível, FilterGetMessage retorna imediatamente. Caso contrário, o chamador será colocado em um estado de espera até que uma mensagem seja recebida.

Se lpOverlapped não for NULL, FilterGetMessage retornará ERROR_IO_PENDING. Nessa situação, o objeto de evento na estrutura lpOverlapped é definido como o estado não atribuído antes de FilterGetMessage retornar. Quando a mensagem é entregue, esse evento é definido como o estado sinalizado.

Depois de receber a mensagem do minifiltro, o chamador pode enviar uma resposta chamando FilterReplyMessage.

Um minifiltro ou instância envia uma mensagem para um aplicativo de modo de usuário chamando FltSendMessage.

Requisitos

   
Plataforma de Destino Universal
Cabeçalho fltuser.h (inclua Fltuser.h)
Biblioteca FltLib.lib
DLL FltLib.dll

Confira também

CreateEvent

FILTER_MESSAGE_HEADER

FilterConnectCommunicationPort

FilterReplyMessage

FilterSendMessage

FltSendMessage

GetOverlappedResult

HasOverlappedIoCompleted