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


Функция SpbControllerSetRequestAttributes (spbcx.h)

Метод SpbControllerSetRequestAttributes задает атрибуты объектов, которые будут использоваться для всех объектов SPBREQUEST, которые расширение платформы SPB (SpbCx) передает драйверу контроллера SPB.

Синтаксис

void SpbControllerSetRequestAttributes(
  [in] WDFDEVICE              FxDevice,
  [in] PWDF_OBJECT_ATTRIBUTES RequestAttributes
);

Параметры

[in] FxDevice

Дескриптор WDFDEVICE для объекта устройства, представляющего контроллер SPB.

[in] RequestAttributes

Указатель на структуру, выделенную вызывающим объектом WDF_OBJECT_ATTRIBUTES, которая содержит атрибуты для объектов SPBREQUEST контроллера SPBREQUEST.

Возвращаемое значение

Никакой

Замечания

Во время инициализации устройства драйвер контроллера SPB может вызвать этот метод, чтобы задать атрибуты по умолчанию для объектов SPBREQUEST. После этого SpbCx назначает эти атрибуты любым запросам ввода-вывода, которые он передает (или пересылает) на целевые устройства на шине.

RequestAttributes указывает на структуру WDF_OBJECT_ATTRIBUTES. Вызывающий объект должен ранее вызвать функцию WDF_OBJECT_ATTRIBUTES_INIT для инициализации этой структуры. После этого вызова, но перед вызовом SpbControllerSetRequestAttributes, вызывающий объект может изменить значения следующих элементов этой структуры:

  • EvtCleanupCallback
  • EvtDeskallback
  • ContextSizeOverride
  • ContextTypeInfo
SpbControllerSetRequestAttributes будет использовать эти значения в качестве атрибутов по умолчанию для объектов SPBREQUEST. Однако драйвер не может изменить значения атрибутов по умолчанию, содержащиеся в ExecutionLevel, SynchronizationScopeи parentObject членов. Эти члены должны оставаться неизменными из значений, в которые функция WDF_OBJECT_ATTRIBUTES_INIT инициализирует их.

WDF_OBJECT_ATTRIBUTES_INIT инициализирует элементы EvtCleanupCallback и EvtDeskallback, чтобы NULL. Если изменить эти значения по умолчанию, чтобы зарегистрировать функцию обратного вызова EvtCleanupCallback или EvtDeskallback обратного вызова, эта функция вызывается каждый раз, когда запрос ввода-вывода поступает в очередь контроллера SPB, которая управляется SpbCx. Такой запрос ввода-вывода приводит к вызову функции EvtCleanupCallback или EvtDeskallback, даже если SpbCx никогда не предоставляет запрос драйверу контроллера SPB (так как запрос отменяется после поступления в очередь, но до его передачи драйверу).

Драйвер контроллера SPB должен вызывать SpbControllerSetRequestAttributes, прежде чем он фиксирует объект устройства, то есть, прежде чем он возвращается из обратного вызова EvtDriverDeviceAdd или добавляет PDO в дочерний список контроллера. Дочерний список представляет устройства, подключенные к шине. Дополнительные сведения см. в разделе Перечисление устройств вшины.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 8.
целевая платформа Всеобщий
заголовка spbcx.h
библиотеки Spbcxstubs.lib
IRQL PASSIVE_LEVEL

См. также

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT