Freigeben über


SPB_CONTROLLER_CONFIG-Struktur (spbcx.h)

Die SPB_CONTROLLER_CONFIG-Struktur enthält die Konfigurationseinstellungen für einen SPB-Controllertreiber.

Syntax

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;

Member

Size

Die Größe (in Bytes) dieser Struktur. 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 diesen Member entweder auf WdfIoQueueDispatchSequential oder WdfIoQueueDispatchParallel fest, aber nicht auf WdfIoQueueDispatchManual. Die SPB_CONTROLLER_CONFIG_INIT-Funktion initialisiert dieses Element mit dem Standardwert WdfIoQueueDispatchSequential. Weitere Informationen zu diesen Verteilertypen finden Sie unter Beispielverwendungen von E/A-Warteschlangen.

Ein Controllertreiber, der im untergeordneten Modus arbeitet, sollte diesen Member auf WdfIoQueueDispatchParallel festlegen. Beispielsweise kann ein I2C-Controller als Peripheriegerät an einen SPI-Bus angeschlossen sein. Dieses Gerät fungiert als master auf dem I2C-Bus, ist aber auf dem SPI-Bus ein untergeordnetes Gerät.

PowerManaged

Gibt an, ob die E/A-Warteschlange für den Controllertreiber mit Strom verwaltet werden soll. Legen Sie diesen Member auf WdfTrue fest, um anzugeben, dass die Warteschlange energieverwaltet werden soll. Legen Sie diesen Member auf WdfFalse fest, um anzugeben, dass die Warteschlange nicht mit Energie verwaltet werden soll. Wenn dieser Member auf WdfDefault festgelegt ist, wird die Warteschlange mit Energie verwaltet, 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 energieverwalteten Warteschlange verfügbar sind, übermittelt das Framework die Anforderungen nur dann an den Treiber, wenn sich das Gerät im Betriebszustand (D0) befindet. Weitere Informationen finden Sie unter Energieverwaltung für E/A-Warteschlangen.

EvtSpbTargetConnect

Ein Zeiger auf die Rückruffunktion EvtSpbTargetConnect . Diese Funktion wird vom SPB-Controllertreiber implementiert. Das EvtSpbTargetConnect-Element ist optional und kann NULL sein.

EvtSpbTargetDisconnect

Ein Zeiger auf die Rückruffunktion EvtSpbTargetDisconnect . Diese Funktion wird vom SPB-Controllertreiber implementiert. Das EvtSpbTargetDisconnect-Element ist optional und kann NULL sein.

EvtSpbControllerLock

Der Zeiger auf die Rückruffunktion EvtSpbControllerLock . Diese Funktion wird vom SPB-Controllertreiber implementiert. Der EvtSpbControllerLock-Member ist optional und kann NULL sein. Weitere Informationen zur EvtSpbControllerLock-Funktion finden Sie unter Behandeln Client-Implemented Sequenzen.

EvtSpbControllerUnlock

Ein Zeiger auf die Rückruffunktion EvtSpbControllerUnlock . Diese Funktion wird vom SPB-Controllertreiber implementiert. Dieser Member ist optional und kann NULL sein. Weitere Informationen zur Funktion EvtSpbControllerUnlock finden Sie unter Behandeln Client-Implemented Sequenzen.

EvtSpbIoRead

Ein Zeiger auf die Rückruffunktion EvtSpbControllerIoRead . Diese Funktion wird vom SPB-Controllertreiber implementiert. Dieser Member ist nicht optional und darf nicht NULL sein.

EvtSpbIoWrite

Ein Zeiger auf die Rückruffunktion EvtSpbControllerIoWrite . Diese Funktion wird vom SPB-Controllertreiber implementiert. Dieser Member ist nicht optional und darf nicht NULL sein.

EvtSpbIoSequence

Ein Zeiger auf die Rückruffunktion EvtSpbControllerIoSequence . Diese Funktion wird vom SPB-Controllertreiber implementiert. Dieser Member ist nicht optional und darf nicht NULL sein.

Hinweise

Die SpbDeviceInitialize-Methode verwendet die Informationen in dieser Struktur, um die Initialisierung des SPB-Controllers abzuschließen. Bevor Sie diese Struktur an SpbDeviceInitialize übergeben, rufen Sie die SPB_CONTROLLER_CONFIG_INIT-Funktion auf, um die Member dieser Struktur mit ihren Standardwerten zu initialisieren, und überschreiben Sie diese Standardwerte bei Bedarf mit Informationen, die für Ihren SPB-Controllertreiber spezifisch sind.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Wird ab Windows 8 unterstützt.
Kopfzeile spbcx.h

Weitere Informationen