Freigeben über


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. Es werden keine neuen Features zu UMDF 1 hinzugefügt, und es gibt eingeschränkte Unterstützung für UMDF 1 für neuere Versionen von Windows 10. 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-typed-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 WdfEventBroadcast-type-Ereignisse abonnieren. Um Übertragungsereignisse zu empfangen, muss die Anwendung über die Microsoft Win32-RegisterDeviceNotification-Funktion eine Benachrichtigung registrieren. WdfEventBroadcast-type-Ereignisse werden als DBT_CUSTOMEVENT-Typ-Ereignisse für Anwendungen 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 von Daten in Bytes, auf die pbData verweist. 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
S_OK
Die Ereignisdaten wurden erfolgreich an das Betriebssystem gesendet.
HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY)
Die datengröße, die der cbDataSize Parameter angibt, ist größer als die maximal zulässige Größe.
E_INVALIDARG
Der parameter EventType ist nicht auf WdfEventBroadcast (1) festgelegt.
E_OUTOFMEMORY

PostEvent- konnte keinen Speicher zuordnen, der für den Abschluss erforderlich war.

 

PostEvent- können auch andere HRESULT-Werte zurückgeben.

Bemerkungen

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 an die anfordernde Anwendung in einem asynchronen Vorgang. Wenn das Betriebssystem anfänglich 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 liefern (möglicherweise aufgrund eines zustandsarmen Arbeitsspeichers), kann das Betriebssystem den Treiber nicht über den Fehler informieren. Aufgrund der asynchronen Art 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 aus dem verlorenen Ereignis wiederherstellen können.

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
Mindest-UMDF-Version 1.5
Header- wudfddi.h (include Wudfddi.h)
DLL- WUDFx.dll

Siehe auch

FIELD_OFFSET

IWDFDevice-

TARGET_DEVICE_CUSTOM_NOTIFICATION

WdfDevicePostEvent-