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


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

Метод SerCx2PioReceiveCreate создает объект piO-receive, который версии 2 расширения последовательной платформы (SerCx2) используется для выполнения транзакций получения piO-receive.

Синтаксис

NTSTATUS SerCx2PioReceiveCreate(
  [in]           WDFDEVICE                  Device,
  [in]           PSERCX2_PIO_RECEIVE_CONFIG PioReceiveConfig,
  [in, optional] PWDF_OBJECT_ATTRIBUTES     Attributes,
  [out]          SERCX2PIORECEIVE           *PioReceive
);

Параметры

[in] Device

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

[in] PioReceiveConfig

Указатель на структуру SERCX2_PIO_RECEIVE_CONFIG. Перед вызовом этого метода вызывающий объект должен вызвать функцию SERCX2_PIO_RECEIVE_CONFIG_INIT для инициализации структуры. Эта структура содержит указатели на набор подпрограмм обратного вызова событий, реализованных драйвером последовательного контроллера. SerCx2 вызывает эти функции для выполнения транзакций получения PIO.

[in, optional] Attributes

Указатель на структуру WDF_OBJECT_ATTRIBUTES, описывающую атрибуты для назначения новому объекту PIO-receive. Перед вызовом этого метода вызывающий объект должен вызвать функцию WDF_OBJECT_ATTRIBUTES_INIT для инициализации структуры. Этот параметр является необязательным и может быть указан как WDF_NO_OBJECT_ATTRIBUTES если драйвер последовательного контроллера не должен назначать атрибуты объекту. Дополнительные сведения см. в разделе "Примечания".

[out] PioReceive

Указатель на расположение, в которое этот метод записывает дескриптор SERCX2PIORECEIVE в только что созданный объект PIO-receive. SerCx2 и драйвер последовательного контроллера используют этот дескриптор в последующих вызовах для ссылки на этот объект.

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

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

Возвращаемый код Описание
STATUS_INVALID_DEVICE_REQUEST
Объект piO-receive уже существует из предыдущего вызова SerCx2PioReceiveCreate.
STATUS_INFO_LENGTH_MISMATCH
Значение размераконфигурации не равно размеру(SERCX2_PIO_RECEIVE_CONFIG).
STATUS_INVALID_PARAMETER
Указанное сочетание реализованных функций обратного вызова недопустимо. Драйвер должен реализовать EvtSerCx2PioReceiveReadBuffer, EvtSerCx2PioReceiveEnableReadyNotificationи функции EvtSerCx2PioReceiveCancelReadyNotification.
STATUS_INSUFFICIENT_RESOURCES
Недостаточно ресурсов для выполнения запрошенной операции.

Замечания

Драйвер последовательного контроллера вызывает этот метод для создания объекта piO-receive. SerCx2 использует этот объект для выполнения транзакций ввода-вывода, которые используют программируемые операции ввода-вывода (PIO) для чтения данных, полученных последовательным контроллером.

Как правило, драйвер последовательного контроллера вызывает SerCx2PioReceiveCreate из функции EvtDriverDeviceAdd. Драйвер должен вызывать этот метод только после успешного вызова метода SerCx2InitializeDevice.

В качестве параметра драйвер последовательного контроллера может использовать параметр Атрибуты для создания контекста для объекта piO-receive, а также для предоставления указателей на EvtCleanupCallback и EvtDedataCallback функций, которые вызываются для подготовки объекта к удалению. Дополнительные сведения см. в разделе WDF_OBJECT_ATTRIBUTES.

Если параметр атрибутов указывает на структуру WDF_OBJECT_ATTRIBUTES, вызывающий объект не должен перезаписать значения, которые функция инициализации WDF_OBJECT_ATTRIBUTES_INIT записывает в ParentObject, ExecutionLevelи syncScope членов этой структуры.

Дополнительные сведения о создании объектов piO-receive см. в SERCX2PIORECEIVE. Дополнительные сведения о транзакциях получения piO см. в SerCx2 PIO-Receive транзакций.

Требования

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

См. также

EvtCleanupCallback

EvtDeskallback

EvtDriverDeviceAdd

SERCX2PIORECEIVE

SERCX2_PIO_RECEIVE_CONFIG

SERCX2_PIO_RECEIVE_CONFIG_INIT

SerCx2InitializeDevice

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT