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 |