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 |
---|---|
|
Ein PIO-Übertragungsobjekt ist bereits aus einem vorherigen SerCx2PioTransmitCreate Aufruf vorhanden. |
|
Der Wert Config->Size entspricht nicht Sizeof(SERCX2_PIO_TRANSMIT_CONFIG). |
|
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. |
|
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 |