Compartir a través de


Función FilterGetMessage (fltuser.h)

La función FilterGetMessage obtiene un mensaje de un minifiltro en modo kernel.

Sintaxis

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

Parámetros

[in] hPort

Identificador de puerto de comunicación devuelto por una llamada anterior a FilterConnectCommunicationPort. Este parámetro es obligatorio y no puede ser NULL.

[out] lpMessageBuffer

Puntero a un búfer asignado por el autor de la llamada que recibe el mensaje del minifiltro. El mensaje debe contener una estructura FILTER_MESSAGE_HEADER , pero de lo contrario, su formato es definido por el autor de la llamada. Este parámetro es obligatorio y no puede ser NULL.

[in] dwMessageBufferSize

Tamaño, en bytes, del búfer al que apunta el parámetro lpMessageBuffer .

[in, out] lpOverlapped

Puntero a una estructura SUPERPUESTA. Este parámetro es opcional y puede ser NULL. Si no es NULL, el autor de la llamada debe inicializar el miembro hEvent de la estructura SUPERPUESTA a un identificador de evento válido o NULL.

Valor devuelto

FilterGetMessage devuelve S_OK si se ejecuta correctamente. De lo contrario, devuelve un valor de error.

Comentarios

La función FilterGetMessage está diseñada para la operación sincrónica y asincrónica (superpuesta).

Cuando lpOverlapped es NULL y hay un mensaje disponible, FilterGetMessage devuelve inmediatamente. De lo contrario, el autor de la llamada se coloca en un estado de espera hasta que se recibe un mensaje.

Si lpOverlapped no es NULL, FilterGetMessage devuelve ERROR_IO_PENDING. En esta situación, el objeto de evento de la estructura lpOverlapped se establece en el estado no asignado antes de que FilterGetMessage devuelva. Cuando se entrega el mensaje, este evento se establece en el estado señalado.

Después de recibir el mensaje del minifiltro, el autor de la llamada puede enviar una respuesta llamando a FilterReplyMessage.

Un minifiltro o instancia envía un mensaje a una aplicación en modo de usuario llamando a FltSendMessage.

Requisitos

   
Plataforma de destino Universal
Encabezado fltuser.h (incluya Fltuser.h)
Library FltLib.lib
Archivo DLL FltLib.dll

Consulte también

CreateEvent

FILTER_MESSAGE_HEADER

FilterConnectCommunicationPort

FilterReplyMessage

FilterSendMessage

FltSendMessage

GetOverlappedResult

HasOverlappedIoCompleted