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;

Angehörige

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.

Bemerkungen

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.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Wird ab Windows 8 unterstützt.
Header- spbcx.h

Siehe auch