Partager via


IWDFDevice ::P ostEvent, méthode (wudfddi.h)

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

La méthode PostEvent avertit de façon asynchrone les applications qui attendent l’événement spécifié 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 WDF_EVENT_TYPE-typée qui identifie le type d’événement. Dans la version actuelle de UMDF, le pilote doit définir EventType sur WdfEventBroadcast (1). WdfEventBroadcast indique que l’événement est diffusé. Les applications peuvent s’abonner à WdfEventBroadcast-type d’événements. Pour recevoir des événements de diffusion, l’application doit s’inscrire à la notification via la fonction Microsoft Win32 RegisterDeviceNotification. les événements WdfEventBroadcast-type 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 qui pbData pointe vers. Zéro est une valeur de taille valide si pbData est défini sur 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 de retour

PostEvent retourne l’une des valeurs suivantes :

Retourner le code 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 de mémoire nécessaire pour qu’elle soit terminée.

 

PostEvent peut également retourner d’autres valeurs HRESULT.

Remarques

Lorsque le pilote appelle IWDFDevice ::P ostEvent pour avertir l’application demandée d’un événement, UMDF envoie l’événement au système d’exploitation. Le système d’exploitation envoie l’événement à l’application demandée dans une opération asynchrone. Si le système d’exploitation 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 pendant qu’il tente de remettre l’événement (éventuellement en raison d’une condition de mémoire faible), 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 demandée n’est pas garantie. Si les informations sur l’événement sont perdues jusqu’à la demande d’application, 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 Using Device Interfaces in UMDF Drivers.

Exigences

Exigence Valeur
fin du support Indisponible dans UMDF 2.0 et versions ultérieures.
plateforme cible Bureau
version minimale de UMDF 1.5
d’en-tête wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Voir aussi

FIELD_OFFSET

IWDFDevice

TARGET_DEVICE_CUSTOM_NOTIFICATION

WdfDevicePostEvent