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
- 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