Partager via


FilterGetMessage, fonction (fltuser.h)

La fonction FilterGetMessage obtient un message à partir d’un minifiltre en mode noyau.

Syntaxe

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

Paramètres

[in] hPort

Handle de port de communication retourné par un appel précédent à FilterConnectCommunicationPort. Ce paramètre est obligatoire et ne peut pas être NULL.

[out] lpMessageBuffer

Pointeur vers une mémoire tampon allouée à l’appelant qui reçoit le message du minifiltre. Le message doit contenir une structure FILTER_MESSAGE_HEADER , mais sinon son format est défini par l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.

[in] dwMessageBufferSize

Taille, en octets, de la mémoire tampon vers laquelle pointe le paramètre lpMessageBuffer .

[in, out] lpOverlapped

Pointeur vers une structure CHEVAUCHÉE. Ce paramètre est facultatif et peut être NULL. S’il n’est pas NULL, l’appelant doit initialiser le membre hEvent de la structure OVERLAPPED sur un handle d’événement valide ou NULL.

Valeur retournée

FilterGetMessage retourne S_OK en cas de réussite. Sinon, elle retourne une valeur d’erreur.

Notes

La fonction FilterGetMessage est conçue pour les opérations synchrones et asynchrones (superposées).

Lorsque lpOverlapped a la valeur NULL et qu’un message est disponible, FilterGetMessage retourne immédiatement. Sinon, l’appelant est placé dans un état d’attente jusqu’à ce qu’un message soit reçu.

Si lpOverlapped n’a pas la valeur NULL, FilterGetMessage retourne ERROR_IO_PENDING. Dans ce cas, l’objet d’événement dans la structure lpOverlapped est défini sur l’état non signé avant le retour de FilterGetMessage . Lorsque le message est remis, cet événement est défini sur l’état signalé.

Après avoir reçu le message du minifiltre, l’appelant peut envoyer une réponse en appelant FilterReplyMessage.

Un minifiltre ou instance envoie un message à une application en mode utilisateur en appelant FltSendMessage.

Spécifications

   
Plateforme cible Universal
En-tête fltuser.h (inclure Fltuser.h)
Bibliothèque FltLib.lib
DLL FltLib.dll

Voir aussi

CreateEvent

FILTER_MESSAGE_HEADER

FilterConnectCommunicationPort

FilterReplyMessage

FilterSendMessage

FltSendMessage

GetOverlappedResult

HasOverlappedIoCompleted