Compartir a través de


estructura SPB_CONTROLLER_CONFIG (spbcx.h)

La estructura SPB_CONTROLLER_CONFIG contiene los valores de configuración de un controlador de controlador SPB.

Sintaxis

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;

Miembros

Size

Tamaño, en bytes, de esta estructura. El método SpbDeviceInitialize usa este valor de parámetro para determinar qué versión de la estructura se usa.

ControllerDispatchType

Tipo de envío de la cola de E/S para el controlador del controlador. Establezca este miembro en WdfIoQueueDispatchSequential o WdfIoQueueDispatchParallel, pero no en WdfIoQueueDispatchManual. La función SPB_CONTROLLER_CONFIG_INIT inicializa este miembro en su valor predeterminado, WdfIoQueueDispatchSequential. Para obtener más información sobre estos tipos de distribución, vea Usos de ejemplo de colas de E/S.

Un controlador de controlador que funciona en modo subordinado debe establecer este miembro en WdfIoQueueDispatchParallel. Por ejemplo, un controlador I2C podría estar conectado como un dispositivo periférico a un bus SPI. Este dispositivo actúa como maestro en el bus I2C, pero es un subordinado en el bus SPI.

PowerManaged

Si la cola de E/S del controlador debe administrarse con energía. Establezca este miembro en WdfTrue para indicar que la cola debe administrarse con energía. Establezca este miembro en WdfFalse para indicar que la cola no debe administrarse con energía. Si este miembro se establece en WdfDefault, la cola se administrará con energía a menos que el controlador llame al método WdfFdoInitSetFilter , que identifica al autor de la llamada como un controlador de filtro de nivel superior o inferior. La función SPB_CONTROLLER_CONFIG_INIT inicializa este miembro en WdfDefault.

Cuando las solicitudes de E/S están disponibles en una cola administrada por energía, el marco entrega las solicitudes al controlador solo si el dispositivo está en su estado de trabajo (D0). Para obtener más información, consulte Administración de energía para colas de E/S.

EvtSpbTargetConnect

Puntero a la función de devolución de llamada EvtSpbTargetConnect . El controlador del controlador SPB implementa esta función. El miembro EvtSpbTargetConnect es opcional y puede ser NULL.

EvtSpbTargetDisconnect

Puntero a la función de devolución de llamada EvtSpbTargetDisconnect . El controlador del controlador SPB implementa esta función. El miembro EvtSpbTargetDisconnect es opcional y puede ser NULL.

EvtSpbControllerLock

Puntero a la función de devolución de llamada EvtSpbControllerLock . El controlador del controlador SPB implementa esta función. El miembro EvtSpbControllerLock es opcional y puede ser NULL. Para obtener más información sobre la función EvtSpbControllerLock , consulte Control de secuencias de Client-Implemented.

EvtSpbControllerUnlock

Puntero a la función de devolución de llamada EvtSpbControllerUnlock . El controlador del controlador SPB implementa esta función. Este miembro es opcional y puede ser NULL. Para obtener más información sobre la función EvtSpbControllerUnlock , vea Control de secuencias de Client-Implemented.

EvtSpbIoRead

Puntero a la función de devolución de llamada EvtSpbControllerIoRead . El controlador del controlador SPB implementa esta función. Este miembro no es opcional y no debe ser NULL.

EvtSpbIoWrite

Puntero a la función de devolución de llamada EvtSpbControllerIoWrite . El controlador del controlador SPB implementa esta función. Este miembro no es opcional y no debe ser NULL.

EvtSpbIoSequence

Puntero a la función de devolución de llamada EvtSpbControllerIoSequence . El controlador del controlador SPB implementa esta función. Este miembro no es opcional y no debe ser NULL.

Comentarios

El método SpbDeviceInitialize usa la información de esta estructura para completar la inicialización del controlador SPB. Antes de pasar esta estructura a SpbDeviceInitialize, llame a la función SPB_CONTROLLER_CONFIG_INIT para inicializar los miembros de esta estructura en sus valores predeterminados y, según sea necesario, sobrescriba estos valores predeterminados con información específica del controlador SPB.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite a partir de Windows 8.
Encabezado spbcx.h

Consulte también