Freigeben über


SerCx2InitializeDevice-Funktion (sercx.h)

Die SerCx2InitializeDevice Methode beendet die Initialisierung des Framework-Geräteobjekts für den seriellen Controller.

Syntax

NTSTATUS SerCx2InitializeDevice(
  [in] WDFDEVICE      Device,
  [in] PSERCX2_CONFIG Config
);

Parameter

[in] Device

Ein WDFDEVICE-Handle für das Framework-Geräteobjekt, das den seriellen Controller darstellt. Weitere Informationen finden Sie in den Hinweisen.

[in] Config

Ein Zeiger auf eine vom Aufrufer zugewiesene SERCX2_CONFIG Struktur, die Zeiger auf eine Reihe von Ereignisrückruffunktionen enthält, die vom seriellen Controllertreiber implementiert werden. Version 2 des seriellen Framework-Controllers (SerCx2) ruft diese Funktionen auf, um den seriellen Controller zu konfigurieren und grundlegende Vorgänge auszuführen, die unabhängig von den vom Treiber unterstützten E/A-Transaktionstypen (PIO, System DMA oder benutzerdefiniert) sind.

Rückgabewert

SerCx2InitializeDevice 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
Die Methode wurde bei der falschen IRQL aufgerufen, oder der parameter Device ist kein gültiges WDFDEVICE-Handle.
STATUS_INFO_LENGTH_MISMATCH
Der Wert ConfigSize entspricht nicht Sizeof(SERCX2_CONFIG).
STATUS_INVALID_PARAMETER
Das RequestAttributes Member ist ungültig, oder erforderliche Rückruffunktionen fehlen in der Liste der Funktionszeiger. Weitere Informationen finden Sie in den Hinweisen.
STATUS_INSUFFICIENT_RESOURCES
Unzureichende Ressourcen sind verfügbar, um den angeforderten Vorgang auszuführen.

Bemerkungen

Vor dem Aufrufen dieser Methode muss der serielle Controllertreiber zuvor den SerCx2InitializeDeviceInit-Methode aufgerufen haben.

Der serielle Controllertreiber muss diese Methode aus seinem EvtDriverDeviceAdd Rückruffunktion aufrufen, nachdem ein Framework-Geräteobjekt für den seriellen Controller erstellt wurde. Der Treiber ruft in der Regel eine Methode wie WdfDeviceCreate auf, um das Framework-Geräteobjekt zu erstellen und ein WDFDEVICE-Handle für dieses Objekt abzurufen.

Drei der Funktionszeiger in der SERCX2_CONFIG Struktur sind von SerCx2 erforderlich. Der Treiber muss die EvtSerCx2PurgeFifos, EvtSerCx2Controlund EvtSerCx2ApplyConfig Rückruffunktionen implementieren. Andernfalls schlägt der SerCx2InitializeDevice Aufruf fehl und gibt STATUS_INVALID_PARAMETER zurück.

Wenn das RequestAttributes Member der SERCX2_CONFIG Struktur auf einen anderen Wert als WDF_NO_OBJECT_ATTRIBUTES festgelegt ist, darf der Treiber die Werte, die in das ParentObject, ExecutionLevel, geschrieben wurden, nicht überschreiben und SynchronizationScope Member dieser Struktur durch die WDF_OBJECT_ATTRIBUTES_INIT-Funktion. Andernfalls schlägt der SerCx2InitializeDevice Aufruf fehl und gibt STATUS_INVALID_PARAMETER zurück.

Wenn der Treiber die WdfDeviceInitSetRequestAttributes Methode aufruft, um die Attribute festzulegen, die für Anforderungsobjekte verwendet werden sollen, müssen die in diesem Aufruf angegebenen Anforderungsattribute mit den Anforderungsattributen übereinstimmen, die der Treiber im Aufruf von SerCx2InitializeDeviceangibt. Weitere Informationen finden Sie unter SerCx2 Custom-Receive Transactions und SerCx2 Custom-Transmit Transactions.

Anforderungen

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

Siehe auch

EvtDriverDeviceAdd

SERCX2_CONFIG

SerCx2InitializeDeviceInit

WdfDeviceCreate

WdfDeviceInitSetRequestAttributes