EVT_SPB_TARGET_CONNECT Rückruffunktion (spbcx.h)
Die EvtSpbTargetConnect Ereignisrückruffunktion eines SPB-Controllertreibers öffnet eine Verbindung mit einem Zielgerät im Bus.
Syntax
EVT_SPB_TARGET_CONNECT EvtSpbTargetConnect;
NTSTATUS EvtSpbTargetConnect(
[in] WDFDEVICE Controller,
[in] SPBTARGET Target
)
{...}
Parameter
[in] Controller
Ein WDFDEVICE-Handle für das Framework-Geräteobjekt, das den SPB-Controller darstellt.
[in] Target
Ein SPBTARGET- Handle für das zu öffnende Ziel. Das Ziel ist ein Peripheriegerät oder port, das an den Bus angeschlossen ist.
Rückgabewert
EvtSpbTargetConnect gibt STATUS_SUCCESS zurück, wenn der Treiber die Verbindung mit dem Ziel erfolgreich öffnet. Andernfalls gibt die Funktion einen geeigneten NTSTATUS-Fehlercode zurück.
Bemerkungen
Die Implementierung dieser Funktion durch den SPB-Controllertreiber ist optional.
Die SPB-Frameworkerweiterung (SpbCx) verwaltet die E/A-Warteschlange für den SPB-Controller. Wenn der SPB-Controllertreiber eine EvtSpbTargetConnect Rückruffunktion registriert, ruft SpbCx diese Funktion auf, wenn ein Client (Peripherietreiber) des Controllers eine IRP_MJ_CREATE Anforderung sendet, eine Verbindung mit einem Zielgerät auf dem Bus zu öffnen. Wenn die EvtSpbTargetConnect--Funktion einen Fehlercode zurückgibt, schlägt SpbCx die IRP_MJ_CREATE Anforderung fehl. Ein Client, der erfolgreich eine Verbindung mit einem Ziel öffnet, hat exklusiven Zugriff auf das Ziel, bis die Verbindung geschlossen ist.
Rufen Sie die SpbTargetGetConnectionParameters Methode auf, um die Verbindungsparameter für das Zielgerät abzurufen. Ein SPB-Controllertreiber ruft diese Methode in der Regel von der EvtSpbTargetConnect-Funktion des Treibers auf. SpbTargetGetConnectionParameters schreibt die Verbindungsparameter in eine vom Aufrufer bereitgestellte SPB_CONNECTION_PARAMETERS Struktur. Das ConnectionParameters Member dieser Struktur ist ein Zeiger auf einen Puffer, der die Verbindungseinstellungen für das Zielgerät enthält. Der Treiber verwendet diese Einstellungen, um den SPB-Controller für die Kommunikation mit dem Gerät zu konfigurieren. Weitere Informationen finden Sie unter Abrufen der Verbindungseinstellungen für ein Gerät.
Die EvtSpbTargetConnect Rückruffunktion wird synchron aus dem Kontext des Clientthreads aufgerufen, der die Verbindung mit dem Ziel anfordert.
SpbCx ruft die EvtSpbTargetDisconnect Rückruffunktion auf, um eine Zielverbindung zu schließen, die zuvor von einem EvtSpbTargetConnect Rückruf geöffnet wurde.
Um eine EvtSpbTargetConnect- Rückruffunktion zu registrieren, rufen Sie die SpbDeviceInitialize-Methode auf.
Beispiele
Um eine EvtSpbTargetConnect- 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 EvtSpbTargetConnect- Rückruffunktion zu definieren, die MyEvtSpbTargetConnect
benannt ist, verwenden Sie den EVT_SPB_TARGET_CONNECT Funktionstyp, wie in diesem Codebeispiel gezeigt:
EVT_SPB_TARGET_CONNECT MyEvtSpbTargetConnect;
Implementieren Sie dann die Rückruffunktion wie folgt:
_Use_decl_annotations_
NTSTATUS
MyEvtSpbTargetConnect(
WDFDEVICE Controller,
SPBTARGET Target
)
{ ... }
Der EVT_SPB_TARGET_CONNECT Funktionstyp wird in der Headerdatei "Spbcx.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_SPB_TARGET_CONNECT 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- | Wird ab Windows 8 unterstützt. |
Zielplattform- | Desktop |
Header- | spbcx.h |
IRQL- | Wird bei PASSIVE_LEVEL aufgerufen. |