Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Структура 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 |
См. также
- 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