Méthode IWDFDevice ::P ostEvent (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]

La méthode PostEvent avertit de manière asynchrone les applications qui attendent l’événement spécifié à partir d’un pilote.

Syntaxe

HRESULT PostEvent(
  [in] REFGUID        EventGuid,
  [in] WDF_EVENT_TYPE EventType,
  [in] BYTE           *pbData,
  [in] DWORD          cbDataSize
);

Paramètres

[in] EventGuid

GUID de l’événement. Le GUID est déterminé par l’application et le pilote et est opaque pour l’infrastructure.

[in] EventType

Valeur de type WDF_EVENT_TYPE qui identifie le type d’événement. Dans la version actuelle d’UMDF, le pilote doit définir EventType sur WdfEventBroadcast (1). WdfEventBroadcast indique que l’événement est diffusé. Les applications peuvent s’abonner à des événements de type WdfEventBroadcast. Pour recevoir des événements de diffusion, l’application doit s’inscrire à la notification via la fonction Microsoft Win32 RegisterDeviceNotification . Les événements de type WdfEventBroadcast sont exposés en tant qu’événements de type DBT_CUSTOMEVENT aux applications.

[in] pbData

Pointeur vers une mémoire tampon qui contient des données associées à l’événement. NULL est une valeur valide.

[in] cbDataSize

Taille, en octets, des données vers laquelle pbData pointe. Zéro est une valeur de taille valide si pbData a la valeur NULL.

La taille maximale des données d’événement est légèrement inférieure à MAXUSHORT (64 Ko). La limite supérieure précise est (0xFFFF - FIELD_OFFSET(TARGET_DEVICE_CUSTOM_NOTIFICATION, CustomDataBuffer)).

Valeur retournée

PostEvent retourne l’une des valeurs suivantes :

Code de retour Description
S_OK
Les données d’événement ont été correctement envoyées au système d’exploitation.
HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY)
La taille des données spécifiée par le paramètre cbDataSize est supérieure à la taille maximale autorisée.
E_INVALIDARG
Le paramètre EventType n’est pas défini sur WdfEventBroadcast (1).
E_OUTOFMEMORY

PostEvent n’a pas pu allouer la mémoire requise pour qu’elle se termine.

 

PostEvent peut également retourner d’autres valeurs HRESULT.

Remarques

Lorsque le pilote appelle IWDFDevice ::P ostEvent pour informer l’application qui demande un événement, UMDF envoie l’événement au système d’exploitation. Le système d’exploitation envoie l’événement à l’application qui demande une opération asynchrone. Si le système d’exploitation ne retourne initialement aucune erreur, le pilote ne reçoit aucune erreur (S_OK). Toutefois, plus tard, si le système d’exploitation reçoit une erreur alors qu’il tente de remettre l’événement (éventuellement en raison d’une mauvaise mémoire), le système d’exploitation ne peut pas informer le pilote de l’erreur. En raison de la nature asynchrone de cette notification d’événement, la remise de l’événement à l’application qui demande n’est pas garantie. Si les informations d’événement sont perdues jusqu’à l’application qui demande, l’application doit être en mesure de récupérer à partir de l’événement perdu.

Pour plus d’informations sur la création d’événements d’appareil, consultez Utilisation d’interfaces d’appareil dans les pilotes UMDF.

Configuration requise

Condition requise Valeur
Fin de la prise en charge Non disponible dans UMDF 2.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
Version UMDF minimale 1.5
En-tête wudfddi.h (inclure Wudfddi.h)
DLL WUDFx.dll

Voir aussi

FIELD_OFFSET

IWDFDevice

TARGET_DEVICE_CUSTOM_NOTIFICATION

WdfDevicePostEvent