structure SPB_CONTROLLER_CONFIG (spbcx.h)
La structure SPB_CONTROLLER_CONFIG contient les paramètres de configuration d’un pilote de contrôleur SPB.
Syntaxe
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;
Membres
Size
Taille, en octets, de cette structure. La méthode SpbDeviceInitialize utilise cette valeur de paramètre pour déterminer la version de la structure utilisée.
ControllerDispatchType
Type de répartition de la file d’attente d’E/S pour le pilote du contrôleur. Définissez ce membre sur WdfIoQueueDispatchSequential ou WdfIoQueueDispatchParallel, mais pas sur WdfIoQueueDispatchManual. La fonction SPB_CONTROLLER_CONFIG_INIT initialise ce membre à sa valeur par défaut, WdfIoQueueDispatchSequential. Pour plus d’informations sur ces types de répartition, consultez Exemples d’utilisations de files d’attente d’E/S.
Un pilote de contrôleur qui fonctionne en mode subordonné doit définir ce membre sur WdfIoQueueDispatchParallel. Par exemple, un contrôleurI2C peut être attaché en tant que périphérique à un bus SPI. Cet appareil agit comme un master sur le bus I2C, mais est un subordonné sur le bus SPI.
PowerManaged
Indique si la file d’attente d’E/S pour le pilote du contrôleur doit être gérée par l’alimentation. Définissez ce membre sur WdfTrue pour indiquer que la file d’attente doit être gérée par l’alimentation. Définissez ce membre sur WdfFalse pour indiquer que la file d’attente ne doit pas être gérée par l’alimentation. Si ce membre est défini sur WdfDefault, la file d’attente est gérée par l’alimentation, sauf si le pilote appelle la méthode WdfFdoInitSetFilter , qui identifie l’appelant comme pilote de filtre de niveau supérieur ou inférieur. La fonction SPB_CONTROLLER_CONFIG_INIT initialise ce membre en WdfDefault.
Lorsque les demandes d’E/S sont disponibles dans une file d’attente gérée par l’alimentation, l’infrastructure remet les requêtes au pilote uniquement si l’appareil est dans son état de fonctionnement (D0). Pour plus d’informations, consultez Gestion de l’alimentation pour les files d’attente d’E/S.
EvtSpbTargetConnect
Pointeur vers la fonction de rappel EvtSpbTargetConnect . Cette fonction est implémentée par le pilote du contrôleur SPB. Le membre EvtSpbTargetConnect est facultatif et peut avoir la valeur NULL.
EvtSpbTargetDisconnect
Pointeur vers la fonction de rappel EvtSpbTargetDisconnect . Cette fonction est implémentée par le pilote du contrôleur SPB. Le membre EvtSpbTargetDisconnect est facultatif et peut être NULL.
EvtSpbControllerLock
Pointeur vers la fonction de rappel EvtSpbControllerLock . Cette fonction est implémentée par le pilote du contrôleur SPB. Le membre EvtSpbControllerLock est facultatif et peut avoir la valeur NULL. Pour plus d’informations sur la fonction EvtSpbControllerLock , consultez Gestion des séquences Client-Implemented.
EvtSpbControllerUnlock
Pointeur vers la fonction de rappel EvtSpbControllerUnlock . Cette fonction est implémentée par le pilote du contrôleur SPB. Ce membre est facultatif et peut avoir la valeur NULL. Pour plus d’informations sur la fonction EvtSpbControllerUnlock , consultez Gestion des séquences Client-Implemented.
EvtSpbIoRead
Pointeur vers la fonction de rappel EvtSpbControllerIoRead . Cette fonction est implémentée par le pilote du contrôleur SPB. Ce membre n’est pas facultatif et ne doit pas avoir la valeur NULL.
EvtSpbIoWrite
Pointeur vers la fonction de rappel EvtSpbControllerIoWrite . Cette fonction est implémentée par le pilote du contrôleur SPB. Ce membre n’est pas facultatif et ne doit pas avoir la valeur NULL.
EvtSpbIoSequence
Pointeur vers la fonction de rappel EvtSpbControllerIoSequence . Cette fonction est implémentée par le pilote du contrôleur SPB. Ce membre n’est pas facultatif et ne doit pas avoir la valeur NULL.
Remarques
La méthode SpbDeviceInitialize utilise les informations de cette structure pour terminer l’initialisation du contrôleur SPB. Avant de passer cette structure à SpbDeviceInitialize, appelez la fonction SPB_CONTROLLER_CONFIG_INIT pour initialiser les membres de cette structure sur leurs valeurs par défaut et, si nécessaire, remplacez ces valeurs par défaut avec des informations spécifiques à votre pilote de contrôleur SPB.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge à partir de Windows 8. |
En-tête | spbcx.h |
Voir aussi
- 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