EVT_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION Rückruffunktion (sercx.h)
Die EvtSerCx2SystemDmaReceiveCancelNewDataNotification Ereignisrückruffunktion wird von Version 2 der seriellen Framework-Erweiterung (SerCx2) aufgerufen, um eine neue Datenbenachrichtigung abzubrechen, die SerCx2 in einem vorherigen Aufruf des EvtSerCx2SystemDmaReceiveEnableNewDataNotification Ereignisrückruffunktion aktiviert hat.
Syntax
EVT_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION EvtSercx2SystemDmaReceiveCancelNewDataNotification;
BOOLEAN EvtSercx2SystemDmaReceiveCancelNewDataNotification(
[in] SERCX2SYSTEMDMARECEIVE SystemDmaReceive
)
{...}
Parameter
[in] SystemDmaReceive
Ein SERCX2SYSTEMDMARECEIVE Handle für ein System-DMA-Empfangsobjekt. Der serielle Controllertreiber hat zuvor den SerCx2SystemDmaReceiveCreate Methode aufgerufen, um dieses Objekt zu erstellen.
Rückgabewert
Die EvtSerCx2SystemDmaReceiveCancelNewDataNotification-Funktion gibt TRUE zurück, wenn die Benachrichtigung erfolgreich abgebrochen wurde und der serielle Controllertreiber garantieren kann, dass diese Benachrichtigung nicht dazu führt, dass die SerCx2SystemDmaReceiveNewDataNotification Methode aufgerufen wird. Die Funktion gibt FALSE- zurück, wenn der Treiber bereits die SerCx2SystemDmaReceiveNewDataNotification Methode aufgerufen hat oder diese Methode aufgerufen wird.
Bemerkungen
Ihr serieller Controllertreiber kann diese Funktion als Option implementieren. Falls implementiert, registriert der Treiber die Funktion im SerCx2SystemDmaReceiveCreate Aufruf, der das System-DMA-Receive-Objekt erstellt. Ein Treiber, der diese Funktion implementiert, muss auch eine EvtSerCx2SystemDmaReceiveEnableNewDataNotification Ereignisrückruffunktion implementieren.
Wenn die zugeordnete Leseanforderung ausfällt oder abgebrochen wird, während eine Benachrichtigungsanforderung für neue Daten aussteht, ruft SerCx2 die EvtSerCx2SystemDmaReceiveCancelNewDataNotification Funktion auf, um die ausstehende Benachrichtigung abzubrechen. Wenn dieser Aufruf FALSEzurückgibt, erwartet SerCx2, dass der serielle Controllertreiber SerCx2SystemDmaReceiveNewDataNotificationaufruft; erst nach diesem Aufruf ruft SerCx2 die EvtSerCx2SystemDmaReceiveCleanupTransaction-Funktion auf, wenn sie implementiert ist, und schließen Sie die Anforderung ab.
Um die Benachrichtigung über neue Daten abzubrechen, deaktiviert die funktion EvtSerCx2SystemDmaReceiveCancelNewDataNotification in der Regel den Interrupt im seriellen Controller, der angibt, dass mehr Daten verfügbar sind, die aus dem empfangenen FIFO gelesen werden können. Dieser Interrupt wurde durch einen vorherigen Aufruf der EvtSerCx2SystemDmaReceiveNewDataNotification-Funktion aktiviert.
Weitere Informationen finden Sie unter SerCx2 System-DMA-Receive Transactions.
Beispiele
Um eine EvtSerCx2SystemDmaReceiveCancelNewDataNotification Rückruffunktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Rückruffunktion identifiziert. Windows stellt eine Reihe von Rückruffunktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.
Um beispielsweise eine EvtSerCx2SystemDmaReceiveCancelNewDataNotification Rückruffunktion zu definieren, die MySystemDmaReceiveCancelNewDataNotification
heißt, verwenden Sie den EVT_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION Funktionstyp, wie in diesem Codebeispiel gezeigt:
EVT_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION MySystemDmaReceiveCancelNewDataNotification;
Implementieren Sie dann die Rückruffunktion wie folgt:
_Use_decl_annotations_
BOOLEAN
MySystemDmaReceiveCancelNewDataNotification(
SERCX2SYSTEMDMARECEIVE SystemDmaReceive
)
{...}
Der EVT_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION Funktionstyp wird in der Headerdatei Sercx.h definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den Funktionstyp EVT_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION in der Headerdatei angewendet werden, verwendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für KMDF-Treiber. Weitere Informationen zu Use_decl_annotationsfinden Sie unter Annotating Function Behavior.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar ab Windows 8.1. |
Zielplattform- | Desktop |
Header- | sercx.h |
IRQL- | Wird bei IRQL <= DISPATCH_LEVEL aufgerufen. |