Freigeben über


EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL Rückruffunktion (sercx.h)

Die EvtSerCx2SystemDmaTransmitConfigureDmaChannel Ereignisrückruffunktion wird von Version 2 der seriellen Framework-Erweiterung (SerCx2) aufgerufen, damit der serielle Controllertreiber eine benutzerdefinierte Konfiguration des DMA-Adapters ausführen kann, die vor beginn jeder DMA-Übertragung in einer System-DMA-Übertragungstransaktion erforderlich sein kann.

Syntax

EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL EvtSercx2SystemDmaTransmitConfigureDmaChannel;

NTSTATUS EvtSercx2SystemDmaTransmitConfigureDmaChannel(
  [in] SERCX2SYSTEMDMATRANSMIT SystemDmaTransmit,
  [in] PMDL Mdl,
  [in] ULONG Offset,
  [in] ULONG Length
)
{...}

Parameter

[in] SystemDmaTransmit

Ein SERCX2SYSTEMDMATRANSMIT Handle zu einem System-DMA-Transmissionsobjekt. Der serielle Controllertreiber hat zuvor den SerCx2SystemDmaTransmitCreate Methode aufgerufen, um dieses Objekt zu erstellen.

[in] Mdl

Ein Zeiger auf eine MDL-, die die Speicherseiten beschreibt, die vom Schreibpuffer für die System-DMA-Übertragungstransaktion überspannt werden. Die Punkt/Gather-Liste für die DMA-Übertragung verwendet den Bereich dieses Speichers, der durch die parameter Offset und Length angegeben wird.

[in] Offset

Der Startoffset für die Datenübertragung. Dieser Parameter ist ein Byte-Offset vom Anfang des Pufferbereichs, der von der MDL beschrieben wird. Wenn die MDL insgesamt N Bytes Pufferraum angibt, befinden sich mögliche Werte von Offset im Bereich 0 bis N-1.

[in] Length

Die Größe der Datenübertragung in Byte. Wenn die MDL insgesamt N Bytes Pufferraum angibt, befinden sich mögliche Werte Length im Bereich 1 bis N–Offset.

Rückgabewert

Die EvtSerCx2SystemDmaTransmitConfigureDmaChannel Funktion gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Andernfalls wird ein entsprechender Fehlerstatuscode zurückgegeben.

Bemerkungen

Ihr serieller Controllertreiber kann diese Funktion als Option implementieren. Falls implementiert, registriert der Treiber die Funktion im SerCx2SystemDmaTransmitCreate Aufruf, der das System-DMA-übertragungsobjekt erstellt.

Vor dem Initiieren einer System-DMA-Übertragungstransaktion ruft SerCx2 die EvtSerCx2SystemDmaTransmitConfigureDmaChannel-Funktion auf, wenn sie implementiert ist. Diese Funktion führt eine spezielle Konfiguration des System-DMA-Controllers durch, die möglicherweise erforderlich sein können, bevor SerCx2 die System-DMA-Übertragungstransaktion startet.

Der serielle Controllertreiber kann eine Methode wie SerCx2SystemDmaTransmitGetDmaEnabler aufrufen, um die DMA-Aktivierung für den System-DMA-Controller abzurufen, der für System-DMA-Übertragungstransaktionen verwendet wird.

Weitere Informationen finden Sie unter SerCx2 System-DMA-Transmit Transactions.

Beispiele

Um eine EvtSerCx2SystemDmaTransmitConfigureDmaChannel Rückruffunktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der rückruffunktion identifiziert, die Sie definieren. 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 EvtSerCx2SystemDmaTransmitConfigureDmaChannel Rückruffunktion zu definieren, die MySystemDmaTransmitConfigureDmaChannelheißt, verwenden Sie den EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL Funktionstyp, wie in diesem Codebeispiel gezeigt:

EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL  MySystemDmaTransmitConfigureDmaChannel;

Implementieren Sie dann die Rückruffunktion wie folgt:

_Use_decl_annotations_
NTSTATUS
  MySystemDmaTransmitConfigureDmaChannel(
    SERCX2SYSTEMDMATRANSMIT SystemDmaTransmit,
    PMDL Mdl,
    ULONG Offset,
    ULONG Length
    )
  {...}

Der EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL 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_TRANSMIT_CONFIGURE_DMA_CHANNEL 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.

Siehe auch

MDL-

SERCX2SYSTEMDMATRANSMIT

SerCx2SystemDmaTransmitCreate

SerCx2SystemDmaTransmitGetDmaEnabler