Поделиться через


структура 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. Это устройство действует как master на шине 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

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

EvtSpbIoRead

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

EvtSpbIoWrite

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

EvtSpbIoSequence

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

Комментарии

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

Требования

Требование Значение
Минимальная версия клиента Поддерживается начиная с Windows 8.
Верхняя часть spbcx.h

См. также раздел