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 |
---|---|
|
Les données d’événement ont été correctement envoyées au système d’exploitation. |
|
La taille des données spécifiée par le paramètre cbDataSize est supérieure à la taille maximale autorisée. |
|
Le paramètre EventType n’est pas défini sur WdfEventBroadcast (1). |
|
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 |