Freigeben über


SerCx2PioTransmitCreate-Funktion (sercx.h)

Die SerCx2PioTransmitCreate-Methode erstellt ein PIO-Übertragungsobjekt, das Version 2 der seriellen Frameworkerweiterung (SerCx2) zum Ausführen von PIO-Übertragungstransaktionen verwendet.

Syntax

NTSTATUS SerCx2PioTransmitCreate(
  [in]           WDFDEVICE                   Device,
  [in]           PSERCX2_PIO_TRANSMIT_CONFIG PioTransmitConfig,
  [in, optional] PWDF_OBJECT_ATTRIBUTES      Attributes,
  [out]          SERCX2PIOTRANSMIT           *PioTransmit
);

Parameter

[in] Device

Ein WDFDEVICE-Handle für das Framework-Geräteobjekt, das den seriellen Controller darstellt. Der serielle Controllertreiber hat dieses Objekt in seiner EvtDriverDeviceAdd Rückruffunktion erstellt. Weitere Informationen finden Sie unter SerCx2InitializeDevice.

[in] PioTransmitConfig

Ein Zeiger auf eine SERCX2_PIO_TRANSMIT_CONFIG Struktur. Vor dem Aufrufen dieser Methode muss der Aufrufer die SERCX2_PIO_TRANSMIT_CONFIG_INIT-Funktion aufrufen, um die Struktur zu initialisieren. Diese Struktur enthält Zeiger auf eine Reihe von Ereignisrückrufroutinen, die vom seriellen Controllertreiber implementiert werden. SerCx2 ruft diese Funktionen auf, um PIO-Übertragungstransaktionen auszuführen.

[in, optional] Attributes

Ein Zeiger auf eine WDF_OBJECT_ATTRIBUTES-Struktur, die die Attribute beschreibt, die dem neuen PIO-Übertragungsobjekt zugewiesen werden sollen. Vor dem Aufrufen dieser Methode muss der Aufrufer die WDF_OBJECT_ATTRIBUTES_INIT-Funktion aufrufen, um die Struktur zu initialisieren. Dieser Parameter ist optional und kann als WDF_NO_OBJECT_ATTRIBUTES angegeben werden, wenn der serielle Controllertreiber dem Objekt keine Attribute zuweisen muss. Weitere Informationen finden Sie in den Hinweisen.

[out] PioTransmit

Ein Zeiger auf eine Position, an die diese Methode ein SERCX2PIOTRANSMIT Handle in das neu erstellte PIO-Übertragungsobjekt schreibt. SerCx2 und der serielle Controllertreiber verwenden dieses Handle in nachfolgenden Aufrufen, um auf dieses Objekt zu verweisen.

Rückgabewert

Diese Methode gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Mögliche Fehlerrückgabewerte sind die folgenden Statuscodes.

Rückgabecode Beschreibung
STATUS_INVALID_DEVICE_REQUEST
Ein PIO-Übertragungsobjekt ist bereits aus einem vorherigen SerCx2PioTransmitCreate Aufruf vorhanden.
STATUS_INFO_LENGTH_MISMATCH
Der Wert Config->Size entspricht nicht Sizeof(SERCX2_PIO_TRANSMIT_CONFIG).
STATUS_INVALID_PARAMETER
Die angegebene Kombination implementierter Rückruffunktionen ist ungültig. Der Treiber muss die EvtSerCx2PioTransmitWriteBuffer, EvtSerCx2PioTransmitEnableReadyNotificationund EvtSerCx2PioTransmitCancelReadyNotification Funktionen implementieren. Der Treiber muss entweder alle drei oder keines der EvtSerCx2PioTransmitDrainFifo, EvtSerCx2PioTransmitCancelDrainFifound EvtSerCx2PioTransmitPurgeFifo Funktionen implementieren.
STATUS_INSUFFICIENT_RESOURCES
Unzureichende Ressourcen sind verfügbar, um den angeforderten Vorgang auszuführen.

Bemerkungen

Ihr serieller Controllertreiber ruft diese Methode auf, um ein PIO-Übertragungsobjekt zu erstellen. SerCx2 verwendet dieses Objekt zum Ausführen von PIO-Übertragungstransaktionen, bei denen es sich um Transaktionen handelt, die programmierte E/A (PIO) verwenden, um Daten in den seriellen Controller zu schreiben, der übertragen werden soll.

In der Regel ruft ein serieller Controllertreiber SerCx2PioTransmitCreate aus seiner EvtDriverDeviceAdd--Funktion auf. Der Treiber muss diese Methode erst aufrufen, nachdem die SerCx2InitializeDevice-Methode erfolgreich aufgerufen wurde.

Als Option kann ein serieller Controllertreiber den parameter Attributes verwenden, um einen Kontext für das PIO-Übertragungsobjekt zu erstellen und Zeiger auf EvtCleanupCallback und EvtDestroyCallback Funktionen zu liefern, die aufgerufen werden, um das Objekt für das Löschen vorzubereiten. Weitere Informationen finden Sie unter WDF_OBJECT_ATTRIBUTES.

Wenn der parameter Attributes auf eine WDF_OBJECT_ATTRIBUTES-Struktur verweist, darf der Aufrufer die Werte, die die WDF_OBJECT_ATTRIBUTES_INIT Initialisierungsfunktion schreibt, nicht in die ParentObject-, ExecutionLevelund SynchronizationScope Member dieser Struktur überschreiben.

Weitere Informationen zum Erstellen von PIO-Übertragungsobjekten finden Sie unter SERCX2PIOTRANSMIT. Weitere Informationen zu PIO-Übertragungsvorgängen finden Sie unter SerCx2 PIO-Transmit Transactions.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows 8.1.
Zielplattform- Universal
Header- sercx.h
IRQL- <= DISPATCH_LEVEL

Siehe auch

EvtCleanupCallback

EvtDestroyCallback-

EvtDriverDeviceAdd

SERCX2PIOTRANSMIT

SERCX2_PIO_TRANSMIT_CONFIG

SERCX2_PIO_TRANSMIT_CONFIG_INIT

SerCx2InitializeDevice

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT