Condividi tramite


SPB_CONTROLLER_CONFIG struttura (spbcx.h)

La struttura SPB_CONTROLLER_CONFIG contiene le impostazioni di configurazione per un driver controller SPB.

Sintassi

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;

Members

Size

Dimensione, in byte, della struttura. Il metodo SpbDeviceInitialize usa questo valore di parametro per determinare quale versione della struttura viene usata.

ControllerDispatchType

Tipo di invio della coda di I/O per il driver del controller. Impostare questo membro su WdfIoQueueDispatchSequential o WdfIoQueueDispatchParallel, ma non su WdfIoQueueDispatchManual. La funzione SPB_CONTROLLER_CONFIG_INIT inizializza questo membro al relativo valore predefinito, WdfIoQueueDispatchSequential. Per altre informazioni su questi tipi di invio, vedere Uso di esempio di code di I/O.

Un driver controller che opera in modalità subordinata deve impostare questo membro su WdfIoQueueDispatchParallel. Ad esempio, un controller I2C potrebbe essere collegato come dispositivo periferico a un bus SPI. Questo dispositivo funge da master sul bus I2C, ma è un subordinato sul bus SPI.

PowerManaged

Se la coda di I/O per il driver del controller deve essere gestita dall'alimentazione. Impostare questo membro su WdfTrue per indicare che la coda deve essere gestita dall'alimentazione. Impostare questo membro su WdfFalse per indicare che la coda non deve essere gestita dall'alimentazione. Se questo membro è impostato su WdfDefault, la coda sarà gestita dal potere a meno che il driver non chiami il metodo WdfFdoInitSetFilter , che identifica il chiamante come driver di filtro di livello superiore o inferiore. La funzione SPB_CONTROLLER_CONFIG_INIT inizializza questo membro in WdfDefault.

Quando le richieste di I/O sono disponibili in una coda gestita da energia, il framework recapita le richieste al driver solo se il dispositivo si trova nello stato di lavoro (D0). Per altre informazioni, vedere Power Management per le code di I/O.

EvtSpbTargetConnect

Puntatore alla funzione di callback EvtSpbTargetConnect . Questa funzione viene implementata dal driver del controller SPB. Il membro EvtSpbTargetConnect è facoltativo e può essere NULL.

EvtSpbTargetDisconnect

Puntatore alla funzione di callback EvtSpbTargetDisconnect . Questa funzione viene implementata dal driver del controller SPB. Il membro EvtSpbTargetDisconnect è facoltativo e può essere NULL.

EvtSpbControllerLock

Puntatore alla funzione di callback EvtSpbControllerLock . Questa funzione viene implementata dal driver del controller SPB. Il membro EvtSpbControllerLock è facoltativo e può essere NULL. Per altre informazioni sulla funzione EvtSpbControllerLock , vedere Gestione delle sequenze di Client-Implemented.

EvtSpbControllerUnlock

Puntatore alla funzione di callback EvtSpbControllerUnlock . Questa funzione viene implementata dal driver del controller SPB. Questo membro è facoltativo e può essere NULL. Per altre informazioni sulla funzione EvtSpbControllerUnlock , vedere Gestione delle sequenze di Client-Implemented.

EvtSpbIoRead

Puntatore alla funzione di callback EvtSpbControllerIoRead . Questa funzione viene implementata dal driver del controller SPB. Questo membro non è facoltativo e non deve essere NULL.

EvtSpbIoWrite

Puntatore alla funzione di callback EvtSpbControllerIoWrite . Questa funzione viene implementata dal driver del controller SPB. Questo membro non è facoltativo e non deve essere NULL.

EvtSpbIoSequence

Puntatore alla funzione di callback EvtSpbControllerIoSequence . Questa funzione viene implementata dal driver del controller SPB. Questo membro non è facoltativo e non deve essere NULL.

Commenti

Il metodo SpbDeviceInitialize usa le informazioni in questa struttura per completare l'inizializzazione del controller SPB. Prima di passare questa struttura a SpbDeviceInitialize, chiamare la funzione SPB_CONTROLLER_CONFIG_INIT per inizializzare i membri di questa struttura ai relativi valori predefiniti e, in base alle esigenze, sovrascrivere questi valori predefiniti con informazioni specifiche del driver del controller SPB.

Requisiti

Requisito Valore
Client minimo supportato Supportato a partire da Windows 8.
Intestazione spbcx.h

Vedi anche