Condividi tramite


Funzione FilterGetMessage (fltuser.h)

La funzione FilterGetMessage ottiene un messaggio da un minifilter in modalità kernel.

Sintassi

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

Parametri

[in] hPort

Handle di porta di comunicazione restituito da una chiamata precedente a FilterConnectCommunicationPort. Questo parametro è obbligatorio e non può essere NULL.

[out] lpMessageBuffer

Puntatore a un buffer allocato dal chiamante che riceve il messaggio dal minifilter. Il messaggio deve contenere una struttura FILTER_MESSAGE_HEADER , ma in caso contrario il formato è definito dal chiamante. Questo parametro è obbligatorio e non può essere NULL.

[in] dwMessageBufferSize

Dimensioni, in byte, del buffer a cui punta il parametro lpMessageBuffer .

[in, out] lpOverlapped

Puntatore a una struttura OVERLAPPED. Questo parametro è facoltativo e può essere NULL. Se non è NULL, il chiamante deve inizializzare il membro hEvent della struttura OVERLAPPED in un handle di evento valido o NULL.

Valore restituito

FilterGetMessage restituisce S_OK in caso di esito positivo. In caso contrario, restituisce un valore di errore.

Commenti

La funzione FilterGetMessage è progettata sia per l'operazione sincrona che asincrona (sovrapposta).

Quando lpOverlapped è NULL e un messaggio è disponibile, FilterGetMessage restituisce immediatamente. In caso contrario, il chiamante viene inserito in uno stato di attesa fino a quando non viene ricevuto un messaggio.

Se lpOverlapped non è NULL, FilterGetMessage restituisce ERROR_IO_PENDING. In questo caso, l'oggetto evento nella struttura lpOverlapped viene impostato sullo stato non assegnato prima che FilterGetMessage restituisca. Quando il messaggio viene recapitato, questo evento viene impostato sullo stato segnalato.

Dopo aver ricevuto il messaggio dal minifilter, il chiamante può inviare una risposta chiamando FilterReplyMessage.

Un minifilter o un'istanza invia un messaggio a un'applicazione in modalità utente chiamando FltSendMessage.

Requisiti

   
Piattaforma di destinazione Universale
Intestazione fltuser.h (include Fltuser.h)
Libreria FltLib.lib
DLL FltLib.dll

Vedi anche

CreateEvent

FILTER_MESSAGE_HEADER

FilterConnectCommunicationPort

FilterReplyMessage

FilterSendMessage

FltSendMessage

GetOverlappedResult

HasOverlappedIoCompleted