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 |