Функция 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, если вызов выполнен успешно. Возможные значения возвращаемых ошибок включают следующие коды состояния.
Возвращаемый код | Описание |
---|---|
|
Метод был вызван неправильно, или параметр устройства |
|
Значение размера |
|
Элемент RequestAttributes недопустим, или необходимые функции обратного вызова отсутствуют в списке указателей функций. Дополнительные сведения см. в разделе "Примечания". |
|
Недостаточно ресурсов для выполнения запрошенной операции. |
Замечания
Перед вызовом этого метода драйвер последовательного контроллера должен ранее вызвать метод 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 |