Функция SerCx2PioTransmitCreate (sercx.h)
Метод SerCx2PioTransmitCreate создает объект передачи piO-передачи, который версии 2 расширения последовательной платформы (SerCx2) использует для выполнения транзакций передачи piO-передачи.
Синтаксис
NTSTATUS SerCx2PioTransmitCreate(
[in] WDFDEVICE Device,
[in] PSERCX2_PIO_TRANSMIT_CONFIG PioTransmitConfig,
[in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] SERCX2PIOTRANSMIT *PioTransmit
);
Параметры
[in] Device
Дескриптор WDFDEVICE для объекта устройства платформы, представляющего последовательный контроллер. Драйвер последовательного контроллера создал этот объект в своей функции обратного вызова EvtDriverDeviceAdd. Дополнительные сведения см. в разделе SerCx2InitializeDevice.
[in] PioTransmitConfig
Указатель на структуру SERCX2_PIO_TRANSMIT_CONFIG. Перед вызовом этого метода вызывающий объект должен вызвать функцию SERCX2_PIO_TRANSMIT_CONFIG_INIT для инициализации структуры. Эта структура содержит указатели на набор подпрограмм обратного вызова событий, реализованных драйвером последовательного контроллера. SerCx2 вызывает эти функции для выполнения транзакций передачи piO-передачи.
[in, optional] Attributes
Указатель на структуру WDF_OBJECT_ATTRIBUTES, описывающую атрибуты для назначения новому объекту piO-передачи. Перед вызовом этого метода вызывающий объект должен вызвать функцию WDF_OBJECT_ATTRIBUTES_INIT для инициализации структуры. Этот параметр является необязательным и может быть указан как WDF_NO_OBJECT_ATTRIBUTES если драйвер последовательного контроллера не должен назначать атрибуты объекту. Дополнительные сведения см. в разделе "Примечания".
[out] PioTransmit
Указатель на расположение, в которое этот метод записывает SERCX2PIOTRANSMIT дескриптор в только что созданный объект передачи piO-передачи. SerCx2 и драйвер последовательного контроллера используют этот дескриптор в последующих вызовах для ссылки на этот объект.
Возвращаемое значение
Этот метод возвращает STATUS_SUCCESS, если вызов выполнен успешно. Возможные значения возвращаемых ошибок включают следующие коды состояния.
Возвращаемый код | Описание |
---|---|
|
Объект piO-передачи уже существует из предыдущего вызова SerCx2PioTransmitCreate. |
|
Значение размера |
|
Указанное сочетание реализованных функций обратного вызова недопустимо. Драйвер должен реализовать EvtSerCx2PioTransmitWriteBuffer, EvtSerCx2PioTransmitEnableReadyNotificationи функции EvtSerCx2PioTransmitCancelReadyNotification. Драйвер должен реализовать все три или ни один из EvtSerCx2PioTransmitDrainFifo, EvtSerCx2PioTransmitCancelDrainFifoи Функции EvtSerCx2PioTransmitPurgeFifo. |
|
Недостаточно ресурсов для выполнения запрошенной операции. |
Замечания
Драйвер последовательного контроллера вызывает этот метод для создания объекта piO-передачи. SerCx2 использует этот объект для выполнения транзакций передачи piO-передачи, которые являются транзакциями, которые используют запрограммированные операции ввода-вывода (PIO) для записи данных в последовательный контроллер для передачи.
Как правило, драйвер последовательного контроллера вызывает SerCx2PioTransmitCreate из функции EvtDriverDeviceAdd. Драйвер должен вызывать этот метод только после успешного вызова метода SerCx2InitializeDevice.
В качестве параметра драйвер последовательного контроллера может использовать параметр Атрибуты для создания контекста для объекта piO-передачи, а также для предоставления указателей на EvtCleanupCallback и EvtDedataCallback функций, которые вызываются для подготовки объекта к удалению. Дополнительные сведения см. в разделе WDF_OBJECT_ATTRIBUTES.
Если параметр атрибутов указывает на структуру WDF_OBJECT_ATTRIBUTES, вызывающий объект не должен перезаписать значения, которые функция инициализации WDF_OBJECT_ATTRIBUTES_INIT записывает в ParentObject, ExecutionLevelи syncScope членов этой структуры.
Дополнительные сведения о создании объектов piO-передачи см. в SERCX2PIOTRANSMIT. Дополнительные сведения об операциях передачи ПИО см. в SerCx2 PIO-Transmit транзакций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 8.1. |
целевая платформа | Всеобщий |
заголовка | sercx.h |
IRQL | <= DISPATCH_LEVEL |