функция обратного вызова EVT_SERCX_TRANSMIT (sercx.h)
Функция обратного вызова событий EvtSerCxTransmit подготавливает устройство последовательного контроллера (UART) для выполнения операции записи (передачи).
Синтаксис
EVT_SERCX_TRANSMIT EvtSercxTransmit;
NTSTATUS EvtSercxTransmit(
[in] WDFDEVICE Device,
[in] size_t Length
)
{...}
Параметры
[in] Device
Дескриптор WDFDEVICE для объекта устройства платформы, представляющего последовательный контроллер.
[in] Length
Число передаваемых байтов. Драйвер контроллера может использовать это значение в качестве указания, чтобы решить, следует ли использовать PIO или DMA для выполнения передачи данных.
Возвращаемое значение
Функция EvtSerCxTransmit возвращает STATUS_SUCCESS, если вызов выполнен успешно. В противном случае возвращается соответствующий код состояния ошибки.
Замечания
Расширение последовательной платформы (SerCx) вызывает эту функцию, чтобы настроить оборудование последовательного контроллера для передачи данных. При необходимости функция EvtSerCxTransmit может включать прерывания.
Функция
Если передача FIFO в последовательном контроллере полная или почти полная, но прерывание с низкой водой FIFO включено, функция EvtSerCxTransmit может просто вернуться. Позже ISR драйвера контроллера может запланировать выполнение функции DPC передачи и получения, и эта функция может передавать больше выходных данных в передаваемый FIFO.
Чтобы зарегистрировать функцию обратного вызова EvtSerCxTransmit, драйвер контроллера вызывает метод SerCxInitialize во время обратного вызова EvtDriverDeviceAd d.
Примеры
Тип функции для этого обратного вызова объявлен в Sercx.h, как показано ниже.
typedef NTSTATUS
EVT_SERCX_TRANSMIT(
__in WDFDEVICE Device
);
Чтобы определить функцию обратного вызова EvtSerCxTransmit с именем MyEvtSerCxTransmit
, необходимо сначала указать объявление функции, которое статических средств проверки драйверов (SDV) и другие средства проверки, как показано ниже.
EVT_SERCX_TRANSMIT MyEvtSerCxTransmit;
Затем реализуйте функцию обратного вызова следующим образом.
NTSTATUS
MyEvtSerCxTransmit(
__in WDFDEVICE Device
)
{ ... }
Дополнительные сведения о требованиях SDV для объявлений функций см. в объявлении функций с помощью типов ролей функций для драйверов KMDF.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 8. |
целевая платформа | Настольный |
заголовка | sercx.h |
IRQL | Вызывается в IRQL <= DISPATCH_LEVEL |