Функция SerCx2InitializeDevice (sercx.h)

Метод SerCx2InitializeDevice завершает инициализацию объекта устройства платформы для последовательного контроллера.

Синтаксис

NTSTATUS SerCx2InitializeDevice(
  [in] WDFDEVICE      Device,
  [in] PSERCX2_CONFIG Config
);

Параметры

[in] Device

Дескриптор WDFDEVICE для объекта устройства платформы, представляющего последовательный контроллер. Дополнительные сведения см. в подразделе "Примечания".

[in] Config

Указатель на структуру, выделенную вызывающим объектом, SERCX2_CONFIG , содержащую указатели на набор функций обратного вызова событий, реализованных драйвером последовательного контроллера. Версия 2 последовательного контроллера платформы (SerCx2) вызывает эти функции для настройки последовательного контроллера и выполнения основных операций, которые не зависят от типов транзакций ввода-вывода (PIO, system DMA или custom), поддерживаемых драйвером.

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

SerCx2InitializeDevice возвращает STATUS_SUCCESS, если вызов выполнен успешно. Возможные возвращаемые значения ошибок включают следующие коды состояния.

Код возврата Описание
STATUS_INVALID_DEVICE_REQUEST
Метод был вызван по неправильному запросу IRQL или параметр Device не является допустимым дескриптором WDFDEVICE.
STATUS_INFO_LENGTH_MISMATCH
Значение Config->Size не равно sizeof(SERCX2_CONFIG).
STATUS_INVALID_PARAMETER
Элемент RequestAttributes недопустим , или необходимые функции обратного вызова отсутствуют в списке указателей функций. Дополнительные сведения см. в подразделе "Примечания".
STATUS_INSUFFICIENT_RESOURCES
Недостаточно ресурсов для выполнения запрошенной операции.

Комментарии

Перед вызовом этого метода драйвер последовательного контроллера должен вызвать метод SerCx2InitializeDeviceInit.

Драйвер последовательного контроллера должен вызывать этот метод из функции обратного вызова EvtDriverDeviceAdd после создания объекта устройства платформы для последовательного контроллера. Драйвер обычно вызывает метод , например WdfDeviceCreate , чтобы создать объект устройства платформы и получить дескриптор WDFDEVICE для этого объекта.

Для SerCx2 требуются три указателя функции в структуре SERCX2_CONFIG . Драйвер должен реализовывать функции обратного вызова EvtSerCx2PurgeFifos, EvtSerCx2Control и EvtSerCx2ApplyConfig . В противном случае вызов SerCx2InitializeDevice завершается сбоем и возвращает STATUS_INVALID_PARAMETER.

Если для элемента RequestAttributes структуры SERCX2_CONFIG задано значение, отличное от WDF_NO_OBJECT_ATTRIBUTES, драйвер не должен перезаписывать значения, записанные в элементы ParentObject, ExecutionLevel и SynchronizationScope этой структуры функцией WDF_OBJECT_ATTRIBUTES_INIT . В противном случае вызов SerCx2InitializeDevice завершается сбоем и возвращает STATUS_INVALID_PARAMETER.

Если драйвер вызывает метод WdfDeviceInitSetRequestAttributes , чтобы задать атрибуты, используемые для объектов запроса, атрибуты запроса, указанные в этом вызове, должны соответствовать атрибутам запроса, заданным драйвером в вызове SerCx2InitializeDevice. Дополнительные сведения см. в разделах Транзакции Custom-Receive SerCx2 и Custom-Transmit Транзакции SerCx2.

Требования

Требование Значение
Минимальная версия клиента Доступно, начиная с Windows 8.1.
Целевая платформа Универсальное
Верхняя часть sercx.h
IRQL PASSIVE_LEVEL

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

EvtDriverDeviceAdd

SERCX2_CONFIG

SerCx2InitializeDeviceInit

WdfDeviceCreate

WdfDeviceInitSetRequestAttributes