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