Share via


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