Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die SpbControllerSetIoOtherCallback Methode registriert die EvtSpbControllerIoOther Rückruffunktion eines SPB-Controllertreibers.
Syntax
void SpbControllerSetIoOtherCallback(
[in] WDFDEVICE FxDevice,
[in] PFN_SPB_CONTROLLER_OTHER EvtSpbControllerIoOther,
[in, optional] PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext
);
Parameter
[in] FxDevice
Ein WDFDEVICE-Handle für das Geräteobjekt, das den SPB-Controller darstellt.
[in] EvtSpbControllerIoOther
Ein Zeiger auf eine EvtSpbControllerIoOther Rückruffunktion. Der SPB-Controllertreiber implementiert diese Funktion. Die SPB-Frameworkerweiterung (SpbCx) ruft diese Funktion auf, um eine E/A-Steuerelementanforderung an den Controllertreiber zu übergeben. Weitere Informationen zum Typ von E/A-Anforderungen, die an diese Funktion übergeben werden, finden Sie im folgenden Abschnitt "Hinweise".
[in, optional] EvtIoInCallerContext
Ein Zeiger auf eine EvtIoInCallerContext Rückruffunktion, die aufgerufen wird, wenn eine E/A-Steuerelementanforderung zuerst in der E/A-Warteschlange des Controllers eingeht und die Anforderung einen IOCTL-Code enthält, den die SPB-Frameworkerweiterung (SpbCx) nicht erkennt. Dieser Rückruf wird im Prozesskontext des Anforderungserstellers ausgeführt und kann Anforderungen vorverarbeiten, die später vom EvtSpbControllerIoOther Rückruf verarbeitet werden. Dieser Parameter ist optional und kann als NULL angegeben werden, wenn keine solche Vorverarbeitung erforderlich ist. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Rückgabewert
Nichts
Bemerkungen
Diese Methode bietet eine Möglichkeit für Ihren SPB-Controllertreiber, seine Unterstützung für benutzerdefinierte I/O-Steuercodes (IOCTLs) zu deklarieren, die busspezifisch oder treiberspezifisch sind. Wenn der SPB-Controllertreiber diese Methode nicht aufruft, lehnt SpbCx alle derartigen E/A-Steuerungsanforderungen ab, und der SPB-Controllertreiber sieht sie nie.
SpbCx verwaltet die E/A-Warteschlange für den SPB-Controller. Wenn SpbCx standardmäßig eine E/A-Steuerelementanforderung empfängt, die über eine IOCTL verfügt, die nicht unterstützt wird, schließt SpbCx die Anforderung mit dem Fehlerstatuscode STATUS_INVALID_DEVICE_REQUEST ab.
Durch Aufrufen von SpbControllerSetIoOtherCallbackdeklariert der SPB-Controllertreiber jedoch seine Unterstützung für E/A-Steuerelementanforderungen, die die SPB-Frameworkerweiterung (SpbCx) nicht unterstützt. In diesem Fall ruft SpbCx, wenn spbCx eine E/A-Steuerelementanforderung mit einem IOCTL-Code empfängt, der nicht unterstützt wird, die EvtSpbControllerIoOther-Funktion auf, um die Anforderung an den SPB-Controllertreiber zur Verarbeitung zu übergeben. Der SPB-Controllertreiber ist für den Abschluss der Anforderung verantwortlich.
Eine Liste der von SpbCx unterstützten IOCTLs finden Sie unter SpbCx I/O Control Codes.
Die optionale EvtIoInCallerContext Rückruffunktion wird im Prozesskontext des Anforderungserstellers ausgeführt und kann kontextabhängige Anforderungsparameter wie Pufferzeiger vorverarbeitet werden, bevor die Anforderung an die EvtSpbControllerIoOther Rückruffunktion übergeben wird. Wenn die EvtIoInCallerContext--Funktion aufgerufen wird, wird jeder Anforderungskontext, den der SPB-Controllertreiber in einem vorherigen Aufruf von SpbControllerSetRequestAttribute s angefordert hat, bereits zugewiesen und der Anforderung zugewiesen.
Der SPB-Controllertreiber muss diese Methode aufrufen, bevor er commits das Geräteobjekt, d. h. bevor er aus der EvtDriverDeviceAdd Rückruf zurückgibt oder der untergeordneten Liste des Controllers die PDO hinzufügt. Die untergeordnete Liste stellt die Geräte dar, die an den Bus angeschlossen sind. Weitere Informationen finden Sie unter Aufzählen der Geräte auf einem Bus-.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar ab Windows 8. |
Zielplattform- | Universal |
Header- | spbcx.h |
Library | Spbcxstubs.lib |
IRQL- | PASSIVE_LEVEL |