Функция 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, если вызов выполнен успешно. Возможные возвращаемые значения ошибок включают следующие коды состояния.
Код возврата | Описание |
---|---|
|
Метод был вызван по неправильному запросу IRQL или параметр Device не является допустимым дескриптором WDFDEVICE. |
|
Значение Config->Size не равно sizeof(SERCX2_CONFIG). |
|
Элемент RequestAttributes недопустим , или необходимые функции обратного вызова отсутствуют в списке указателей функций. Дополнительные сведения см. в подразделе "Примечания". |
|
Недостаточно ресурсов для выполнения запрошенной операции. |
Комментарии
Перед вызовом этого метода драйвер последовательного контроллера должен вызвать метод 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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по