SPB_CONTROLLER_CONFIG Struktur (spbcx.h)
Die SPB_CONTROLLER_CONFIG-Struktur enthält die Konfigurationseinstellungen für einen SPB-Controllertreiber.
typedef struct _SPB_CONTROLLER_CONFIG {
ULONG Size;
WDF_IO_QUEUE_DISPATCH_TYPE ControllerDispatchType;
WDF_TRI_STATE PowerManaged;
PFN_SPB_TARGET_CONNECT EvtSpbTargetConnect;
PFN_SPB_TARGET_DISCONNECT EvtSpbTargetDisconnect;
PFN_SPB_CONTROLLER_LOCK EvtSpbControllerLock;
PFN_SPB_CONTROLLER_UNLOCK EvtSpbControllerUnlock;
PFN_SPB_CONTROLLER_READ EvtSpbIoRead;
PFN_SPB_CONTROLLER_WRITE EvtSpbIoWrite;
PFN_SPB_CONTROLLER_SEQUENCE EvtSpbIoSequence;
} SPB_CONTROLLER_CONFIG, *PSPB_CONTROLLER_CONFIG;
Size
Die Größe dieser Struktur in Byte. Die SpbDeviceInitialize Methode verwendet diesen Parameterwert, um zu bestimmen, welche Version der Struktur verwendet wird.
ControllerDispatchType
Der Verteilertyp der E/A-Warteschlange für den Controllertreiber. Legen Sie dieses Element entweder auf WdfIoQueueDispatchSequential- oder WdfIoQueueDispatchParallelfest, aber nicht auf WdfIoQueueDispatchManual. Die SPB_CONTROLLER_CONFIG_INIT-Funktion initialisiert dieses Element in den Standardwert WdfIoQueueDispatchSequential. Weitere Informationen zu diesen Verteilertypen finden Sie unter Beispiel für die Verwendung von E/A-Warteschlangen.
Ein Controllertreiber, der im untergeordneten Modus ausgeführt wird, sollte dieses Element auf WdfIoQueueDispatchParallelfestlegen. Ein I2C-Controller kann z. B. als Peripheriegerät an einen SPI-Bus angeschlossen werden. Dieses Gerät fungiert als Master auf dem I2C Bus, ist aber ein untergeordneter SPI-Bus.
PowerManaged
Gibt an, ob die E/A-Warteschlange für den Controllertreiber energieverwaltet werden soll. Legen Sie dieses Element auf WdfTrue- fest, um anzugeben, dass die Warteschlange energieverwaltet werden soll. Legen Sie dieses Mitglied auf WdfFalse- fest, um anzugeben, dass die Warteschlange nicht mit Strom verwaltet werden soll. Wenn dieses Element auf WdfDefault-festgelegt ist, wird die Warteschlange energieverwaltet, es sei denn, der Treiber ruft die WdfFdoInitSetFilter--Methode auf, die den Aufrufer als Filtertreiber der oberen oder unteren Ebene identifiziert. Die SPB_CONTROLLER_CONFIG_INIT-Funktion initialisiert dieses Element in WdfDefault-.
Wenn E/A-Anforderungen in einer stromverwalteten Warteschlange verfügbar sind, liefert das Framework die Anforderungen nur dann an den Treiber, wenn sich das Gerät im Arbeitszustand (D0) befindet. Weitere Informationen finden Sie unter Power Management für E/A-Warteschlangen.
EvtSpbTargetConnect
Ein Zeiger auf die EvtSpbTargetConnect Rückruffunktion. Diese Funktion wird vom SPB-Controllertreiber implementiert. Das EvtSpbTargetConnect Member ist optional und kann NULL sein.
EvtSpbTargetDisconnect
Ein Zeiger auf die EvtSpbTargetDisconnect Rückruffunktion. Diese Funktion wird vom SPB-Controllertreiber implementiert. Der EvtSpbTargetDisconnect Member ist optional und kann NULL sein.
EvtSpbControllerLock
Der Zeiger auf die EvtSpbControllerLock Rückruffunktion. Diese Funktion wird vom SPB-Controllertreiber implementiert. Das EvtSpbControllerLock Member ist optional und kann NULL sein. Weitere Informationen zur funktion EvtSpbControllerLock finden Sie unter Handling Client-Implemented Sequences.
EvtSpbControllerUnlock
Ein Zeiger auf die EvtSpbControllerUnlock Rückruffunktion. Diese Funktion wird vom SPB-Controllertreiber implementiert. Dieses Element ist optional und kann NULL sein. Weitere Informationen zur funktion EvtSpbControllerUnlock finden Sie unter Handling Client-Implemented Sequences.
EvtSpbIoRead
Ein Zeiger auf die EvtSpbControllerIoRead Rückruffunktion. Diese Funktion wird vom SPB-Controllertreiber implementiert. Dieses Element ist nicht optional und darf nicht NULL sein.
EvtSpbIoWrite
Ein Zeiger auf die EvtSpbControllerIoWrite Rückruffunktion. Diese Funktion wird vom SPB-Controllertreiber implementiert. Dieses Element ist nicht optional und darf nicht NULL sein.
EvtSpbIoSequence
Ein Zeiger auf die EvtSpbControllerIoSequence Rückruffunktion. Diese Funktion wird vom SPB-Controllertreiber implementiert. Dieses Element ist nicht optional und darf nicht NULL sein.
Die SpbDeviceInitialize Methode verwendet die Informationen in dieser Struktur, um die Initialisierung des SPB-Controllers abzuschließen. Rufen Sie vor dem Übergeben dieser Struktur an SpbDeviceInitializedie SPB_CONTROLLER_CONFIG_INIT-Funktion auf, um die Member dieser Struktur mit ihren Standardwerten zu initialisieren, und überschreiben Sie diese Standardwerte nach Bedarf mit Informationen, die für den SPB-Controllertreiber spezifisch sind.
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Wird ab Windows 8 unterstützt. |
Header- | spbcx.h |
- EvtSpbControllerIoRead-
- EvtSpbControllerIoSequence
- EvtSpbControllerIoWrite
- EvtSpbControllerLock
- EvtSpbControllerUnlock
- EvtSpbTargetConnect
- EvtSpbTargetDisconnect
- IOCTL_SPB_EXECUTE_SEQUENCE
- IOCTL_SPB_LOCK_CONTROLLER
- IOCTL_SPB_UNLOCK_CONTROLLER
- IRP_MN_READ
- IRP_MN_WRITE
- SPB_CONTROLLER_CONFIG_INIT
- SpbDeviceInitialize
- SpbRequestGetParameters
- WdfFdoInitSetFilter-