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


Функция 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
Метод был вызван неправильно, или параметр устройства не является допустимым дескриптором WDFDEVICE.
STATUS_INFO_LENGTH_MISMATCH
Значение размераконфигурации не равно размеру(SERCX2_CONFIG).
STATUS_INVALID_PARAMETER
Элемент RequestAttributes недопустим, или необходимые функции обратного вызова отсутствуют в списке указателей функций. Дополнительные сведения см. в разделе "Примечания".
STATUS_INSUFFICIENT_RESOURCES
Недостаточно ресурсов для выполнения запрошенной операции.

Замечания

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

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

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

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

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

Требования

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

См. также

EvtDriverDeviceAdd

SERCX2_CONFIG

SerCx2InitializeDeviceInit

WdfDeviceCreate

WdfDeviceInitSetRequestAttributes