структура SPB_CONTROLLER_CONFIG (spbcx.h)

Структура SPB_CONTROLLER_CONFIG содержит параметры конфигурации драйвера контроллера SPB.

Синтаксис

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;

Члены

Size

Размер этой структуры в байтах. Метод SpbDeviceInitialize использует это значение параметра для определения используемой версии структуры.

ControllerDispatchType

Тип отправки очереди ввода-вывода для драйвера контроллера. Задайте для этого элемента значение WdfIoQueueDispatchSequential или WdfIoQueueDispatchParallel, но не WdfIoQueueDispatchManual. Функция SPB_CONTROLLER_CONFIG_INIT инициализирует этот элемент по умолчанию, WdfIoQueueDispatchSequential. Дополнительные сведения об этих типах отправки см. в примере использования очередей ввода-вывода.

Драйвер контроллера, работающий в подчиненном режиме, должен задать для этого элемента значение WdfIoQueueDispatchParallel. Например, контроллер I2C может быть подключен как периферийное устройство к шине SPI. Это устройство выступает в качестве главного на шине I2C, но является подчиненным на шине SPI.

PowerManaged

Следует ли управлять очередью ввода-вывода для драйвера контроллера. Задайте этому элементу значение WdfTrue, чтобы указать, что очередь должна управляться питанием. Задайте этому элементу значение WdfFalse, чтобы указать, что очередь не должна управляться питанием. Если для этого элемента задано значение WdfDefault, очередь будет управляться питанием, если драйвер не вызывает метод WdfFdoInitSetFilter, который определяет вызывающий объект как драйвер фильтра верхнего или нижнего уровня. Функция SPB_CONTROLLER_CONFIG_INIT инициализирует этот элемент для WdfDefault.

Когда запросы ввода-вывода доступны в очереди, управляемой питанием, платформа отправляет запросы драйверу только в том случае, если устройство находится в состоянии работы (D0). Дополнительные сведения см. в разделе Управления питанием для очередей ввода-вывода.

EvtSpbTargetConnect

Указатель на функцию обратного вызова EvtSpbTargetConnect. Эта функция реализуется драйвером контроллера SPB. Элемент EvtSpbTargetConnect является необязательным и может иметь значение NULL.

EvtSpbTargetDisconnect

Указатель на функцию обратного вызова EvtSpbTargetDisconnect. Эта функция реализуется драйвером контроллера SPB. Элемент EvtSpbTargetDisconnect является необязательным и может иметь значение NULL.

EvtSpbControllerLock

Указатель на функцию обратного вызова EvtSpbControllerLock. Эта функция реализуется драйвером контроллера SPB. Элемент EvtSpbControllerLock является необязательным и может иметь значение NULL. Дополнительные сведения о функции EvtSpbControllerLock см. в разделе Обработка Client-Implemented последовательностей.

EvtSpbControllerUnlock

Указатель на функцию обратного вызова EvtSpbControllerUn lock. Эта функция реализуется драйвером контроллера SPB. Этот элемент является необязательным и может иметь значение NULL. Дополнительные сведения о функции EvtSpbControllerUnlock см. в разделе Обработка Client-Implemented последовательностей.

EvtSpbIoRead

Указатель на функцию обратного вызова EvtSpbControllerIoRead. Эта функция реализуется драйвером контроллера SPB. Этот член не является необязательным и не должен иметь значение NULL.

EvtSpbIoWrite

Указатель на функцию обратного вызова EvtSpbControllerIoW rite. Эта функция реализуется драйвером контроллера SPB. Этот член не является необязательным и не должен иметь значение NULL.

EvtSpbIoSequence

Указатель на функцию обратного вызова EvtSpbControllerIoSequence. Эта функция реализуется драйвером контроллера SPB. Этот член не является необязательным и не должен иметь значение NULL.

Замечания

Метод SpbDeviceInitialize использует сведения в этой структуре для завершения инициализации контроллера SPB. Перед передачей этой структуры в SpbDeviceInitializeвызовите функцию SPB_CONTROLLER_CONFIG_INIT, чтобы инициализировать элементы этой структуры в значения по умолчанию, и при необходимости перезаписать эти значения по умолчанию с информацией, относяющейся к драйверу контроллера SPB.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается начиная с Windows 8.
заголовка spbcx.h

См. также