Compartilhar via


estrutura SPB_CONTROLLER_CONFIG (spbcx.h)

A estrutura SPB_CONTROLLER_CONFIG contém as configurações de um driver de controlador SPB.

Sintaxe

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;

Membros

Size

O tamanho, em bytes, dessa estrutura. O método SpbDeviceInitialize usa esse valor de parâmetro para determinar qual versão da estrutura está sendo usada.

ControllerDispatchType

O tipo de expedição da fila de E/S para o driver do controlador. Defina esse membro como WdfIoQueueDispatchSequential ou WdfIoQueueDispatchParallel, mas não como WdfIoQueueDispatchManual. A função SPB_CONTROLLER_CONFIG_INIT inicializa esse membro para seu valor padrão, WdfIoQueueDispatchSequential. Para obter mais informações sobre esses tipos de expedição, consulte Usos de exemplo de filas de E/S.

Um driver de controlador que opera no modo subordinado deve definir esse membro como WdfIoQueueDispatchParallel. Por exemplo, um controlador I2C pode ser anexado como um dispositivo periférico a um barramento SPI. Este dispositivo atua como um master no ônibus I2C, mas é subordinado no ônibus SPI.

PowerManaged

Se a fila de E/S do driver do controlador deve ser gerenciada por energia. Defina esse membro como WdfTrue para indicar que a fila deve ser gerenciada por energia. Defina esse membro como WdfFalse para indicar que a fila não deve ser gerenciada por energia. Se esse membro estiver definido como WdfDefault, a fila será gerenciada por energia, a menos que o driver chame o método WdfFdoInitSetFilter , que identifica o chamador como um driver de filtro de nível superior ou inferior. A função SPB_CONTROLLER_CONFIG_INIT inicializa esse membro para WdfDefault.

Quando as solicitações de E/S estão disponíveis em uma fila gerenciada por energia, a estrutura entrega as solicitações ao driver somente se o dispositivo estiver em seu estado de trabalho (D0). Para obter mais informações, consulte Gerenciamento de energia para filas de E/S.

EvtSpbTargetConnect

Um ponteiro para a função de retorno de chamada EvtSpbTargetConnect . Essa função é implementada pelo driver do controlador SPB. O membro EvtSpbTargetConnect é opcional e pode ser NULL.

EvtSpbTargetDisconnect

Um ponteiro para a função de retorno de chamada EvtSpbTargetDisconnect . Essa função é implementada pelo driver do controlador SPB. O membro EvtSpbTargetDisconnect é opcional e pode ser NULL.

EvtSpbControllerLock

O ponteiro para a função de retorno de chamada EvtSpbControllerLock . Essa função é implementada pelo driver do controlador SPB. O membro EvtSpbControllerLock é opcional e pode ser NULL. Para obter mais informações sobre a função EvtSpbControllerLock , consulte Manipulando sequências de Client-Implemented.

EvtSpbControllerUnlock

Um ponteiro para a função de retorno de chamada EvtSpbControllerUnlock . Essa função é implementada pelo driver do controlador SPB. Esse membro é opcional e pode ser NULL. Para obter mais informações sobre a função EvtSpbControllerUnlock , consulte Manipulando sequências de Client-Implemented.

EvtSpbIoRead

Um ponteiro para a função de retorno de chamada EvtSpbControllerIoRead . Essa função é implementada pelo driver do controlador SPB. Esse membro não é opcional e não deve ser NULL.

EvtSpbIoWrite

Um ponteiro para a função de retorno de chamada EvtSpbControllerIoWrite . Essa função é implementada pelo driver do controlador SPB. Esse membro não é opcional e não deve ser NULL.

EvtSpbIoSequence

Um ponteiro para a função de retorno de chamada EvtSpbControllerIoSequence . Essa função é implementada pelo driver do controlador SPB. Esse membro não é opcional e não deve ser NULL.

Comentários

O método SpbDeviceInitialize usa as informações nessa estrutura para concluir a inicialização do controlador SPB. Antes de passar essa estrutura para SpbDeviceInitialize, chame a função SPB_CONTROLLER_CONFIG_INIT para inicializar os membros dessa estrutura para seus valores padrão e, conforme necessário, substitua esses valores padrão por informações específicas ao driver do controlador SPB.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte começando com Windows 8.
Cabeçalho spbcx.h

Confira também