IWDFDevice::P ostEvent-Methode (wudfddi.h)
[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 für neuere Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.]
Die PostEvent-Methode benachrichtigt Anwendungen asynchron, die auf das angegebene Ereignis von einem Treiber warten.
Syntax
HRESULT PostEvent(
[in] REFGUID EventGuid,
[in] WDF_EVENT_TYPE EventType,
[in] BYTE *pbData,
[in] DWORD cbDataSize
);
Parameter
[in] EventGuid
Die GUID für das Ereignis. Die GUID wird von der Anwendung und dem Treiber bestimmt und ist für das Framework undurchsichtig.
[in] EventType
Ein WDF_EVENT_TYPE typisierter Wert, der den Ereignistyp identifiziert. In der aktuellen Version von UMDF muss der Treiber EventType auf WdfEventBroadcast (1) festlegen. WdfEventBroadcast gibt an, dass das Ereignis übertragen wird. Anwendungen können Ereignisse vom Typ WdfEventBroadcast abonnieren. Zum Empfangen von Broadcastereignissen muss sich die Anwendung für Benachrichtigungen über die Microsoft Win32 RegisterDeviceNotification-Funktion registrieren. Ereignisse vom Typ WdfEventBroadcast werden anwendungen als ereignisse vom typ DBT_CUSTOMEVENT verfügbar gemacht.
[in] pbData
Ein Zeiger auf einen Puffer, der Daten enthält, die dem Ereignis zugeordnet sind. NULL ist ein gültiger Wert.
[in] cbDataSize
Die Größe der Daten, auf die pbData verweist, in Bytes. Null ist ein gültiger Größenwert, wenn pbData auf NULL festgelegt ist.
Die maximale Größe der Ereignisdaten ist etwas kleiner als MAXUSHORT (64 KB). Die genaue Obergrenze ist (0xFFFF – FIELD_OFFSET(TARGET_DEVICE_CUSTOM_NOTIFICATION, CustomDataBuffer)).
Rückgabewert
PostEvent gibt einen der folgenden Werte zurück:
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Ereignisdaten wurden erfolgreich an das Betriebssystem gesendet. |
|
Die vom cbDataSize-Parameter festgelegte Datengröße ist größer als die maximal zulässige Größe. |
|
Der EventType-Parameter ist nicht auf WdfEventBroadcast (1) festgelegt. |
|
PostEvent konnte keinen Speicher zuordnen, der für den Abschluss erforderlich war. |
PostEvent kann auch andere HRESULT-Werte zurückgeben.
Hinweise
Wenn der Treiber IWDFDevice::P ostEvent aufruft , um die anfordernde Anwendung über ein Ereignis zu benachrichtigen, sendet UMDF das Ereignis an das Betriebssystem. Das Betriebssystem sendet das Ereignis in einem asynchronen Vorgang an die anfordernde Anwendung weiter. Wenn das Betriebssystem zunächst keinen Fehler zurückgibt, erhält der Treiber keinen Fehler (S_OK). Wenn das Betriebssystem jedoch später einen Fehler empfängt, während es versucht, das Ereignis zu übermitteln (möglicherweise aufgrund einer geringen Arbeitsspeicherbedingung), kann das Betriebssystem den Treiber nicht über den Fehler informieren. Aufgrund der asynchronen Natur dieser Ereignisbenachrichtigung ist die Übermittlung des Ereignisses an die anfordernde Anwendung nicht garantiert. Wenn Ereignisinformationen auf dem Weg zur anfordernden Anwendung verloren gehen, sollte die Anwendung in der Lage sein, das verlorene Ereignis wiederherzustellen.
Informationen zum Erstellen von Geräteereignissen finden Sie unter Verwenden von Geräteschnittstellen in UMDF-Treibern.
Anforderungen
Anforderung | Wert |
---|---|
Ende des Supports | In UMDF 2.0 und höher nicht verfügbar. |
Zielplattform | Desktop |
UMDF-Mindestversion | 1.5 |
Kopfzeile | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |