Freigeben über


EVT_SERCX2_CUSTOM_TRANSMIT_TRANSACTION_INITIALIZE Rückruffunktion (sercx.h)

Die EvtSerCx2CustomTransmitTransactionInitialize Ereignisrückruffunktion wird von Version 2 der seriellen Framework-Erweiterung (SerCx2) aufgerufen, um den seriellen Controllertreiber für die Durchführung einer benutzerdefinierten Übertragungstransaktion vorzubereiten.

Syntax

EVT_SERCX2_CUSTOM_TRANSMIT_TRANSACTION_INITIALIZE EvtSercx2CustomTransmitTransactionInitialize;

void EvtSercx2CustomTransmitTransactionInitialize(
  [in] SERCX2CUSTOMTRANSMITTRANSACTION CustomTransmitTransaction,
  [in] PMDL Mdl,
  [in] ULONG Offset,
  [in] ULONG Length
)
{...}

Parameter

[in] CustomTransmitTransaction

Ein SERCX2CUSTOMTRANSMITTRANSACTION Handle für ein benutzerdefiniertes Übertragungsobjekt. Der serielle Controllertreiber hat zuvor den SerCx2CustomTransmitTransactionCreate Methode aufgerufen, um dieses Objekt zu erstellen.

[in] Mdl

Ein Zeiger auf eine MDL-, die die Speicherseiten beschreibt, die vom Schreibpuffer für die benutzerdefinierte Ü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

Nichts

Bemerkungen

Ihr serieller Controllertreiber kann diese Funktion als Option implementieren. Wenn implementiert, registriert der Treiber die Funktion im SerCx2CustomTransmitTransactionCreate Aufruf, der das benutzerdefinierte Übertragungsobjekt erstellt.

Ihr Treiber sollte eine EvtSerCx2CustomTransmitTransactionInitialize--Funktion implementieren, wenn sie den seriellen Controller und die zugehörige Hardware initialisieren muss, um eine neue benutzerdefinierte Übertragungstransaktion vorzubereiten. SerCx2 ruft diese Funktion auf, wenn sie implementiert ist, bevor Sie die transaktion für die benutzerdefinierte Übertragung starten. Als Reaktion auf diesen Aufruf muss der serielle Controllertreiber die SerCx2CustomTransmitTransactionInitializeComplete--Methode aufrufen, um SerCx2 nach Abschluss der Initialisierung zu benachrichtigen.

Weitere Informationen finden Sie unter SerCx2 Custom-Transmit Transactions.

Beispiele

Um eine EvtSerCx2CustomTransmitTransactionInitialize 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 EvtSerCx2CustomTransmitTransactionInitialize Rückruffunktion zu definieren, die MyCustomTransmitTransactionInitializebenannt ist, verwenden Sie den EVT_SERCX2_CUSTOM_TRANSMIT_TRANSACTION_INITIALIZE Funktionstyp, wie in diesem Codebeispiel gezeigt:

EVT_SERCX2_CUSTOM_TRANSMIT_TRANSACTION_INITIALIZE  MyCustomTransmitTransactionInitialize;

Implementieren Sie dann die Rückruffunktion wie folgt:

_Use_decl_annotations_
VOID
  MyCustomTransmitTransactionInitialize(
    SERCX2CUSTOMTRANSMITTRANSACTION  CustomTransmitTransaction,
    WDFREQUEST  Request,
    PMDL  Mdl,
    ULONG  Offset,
    ULONG  Length
    )
  {...}

Der EVT_SERCX2_CUSTOM_TRANSMIT_TRANSACTION_INITIALIZE 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_CUSTOM_TRANSMIT_TRANSACTION_INITIALIZE 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

IRP_MJ_WRITE

MDL-

SERCX2CUSTOMTRANSMITTRANSACTION

SerCx2CustomTransmitTransactionCreate