функция обратного вызова EVT_SERCX2_PIO_TRANSMIT_CLEANUP_TRANSACTION (sercx.h)
Функция обратного вызова события EvtSerCx2PioTransmitCleanupTransaction вызывается версией 2 расширения последовательной платформы (SerCx2) для очистки состояния последовательного контроллера после завершения транзакции передачи персональных данных.
Синтаксис
EVT_SERCX2_PIO_TRANSMIT_CLEANUP_TRANSACTION EvtSercx2PioTransmitCleanupTransaction;
void EvtSercx2PioTransmitCleanupTransaction(
[in] SERCX2PIOTRANSMIT PioTransmit
)
{...}
Параметры
[in] PioTransmit
Дескриптор SERCX2PIOTRANSMIT к объекту pio-передачи. Драйвер последовательного контроллера ранее вызывал метод SerCx2PioTransmitCreate для создания этого объекта.
Возвращаемое значение
None
Remarks
Драйвер последовательного контроллера может, как вариант, реализовать эту функцию. При реализации драйвер регистрирует функцию в вызове SerCx2PioTransmitCreate , который создает объект pio-передачи.
Драйвер последовательного контроллера должен реализовать функцию EvtSerCx2PioTransmitCleanupTransaction , если ему необходимо очистить состояние последовательного контроллера в конце транзакции pio-передачи. SerCx2 вызывает эту функцию, если она реализована, после завершения транзакции передачи персональных данных. В ответ на вызов EvtSerCx2PioTransmitCleanupTransaction драйвер последовательного контроллера должен вызвать метод SerCx2PioTransmitCleanupTransactionComplete , чтобы уведомить SerCx2 после завершения очистки.
Дополнительные сведения см. в разделе SerCx2 PIO-Transmit Transactions.
Примеры
Чтобы определить функцию обратного вызова EvtSerCx2PioTransmitCleanupTransaction , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции обратного вызова. Windows предоставляет набор типов функций обратного вызова для драйверов. Объявление функции с помощью типов функций обратного вызова помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.
Например, чтобы определить функцию обратного вызова EvtSerCx2PioTransmitCleanupTransaction с именем MyPioTransmitCleanupTransaction
, используйте тип функции EVT_SERCX2_PIO_TRANSMIT_CLEANUP_TRANSACTION , как показано в следующем примере кода:
EVT_SERCX2_PIO_TRANSMIT_CLEANUP_TRANSACTION MyPioTransmitCleanupTransaction;
Затем реализуйте функцию обратного вызова следующим образом:
_Use_decl_annotations_
VOID
MyPioTransmitCleanupTransaction(
SERCX2PIOTRANSMIT PioTransmit
)
{...}
Тип функции EVT_SERCX2_PIO_TRANSMIT_CLEANUP_TRANSACTION определяется в файле заголовка Sercx.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует, что будут использоваться заметки, которые применяются к типу функции EVT_SERCX2_PIO_TRANSMIT_CLEANUP_TRANSACTION в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов KMDF. Дополнительные сведения о Use_decl_annotations см. в статье Поведение функции с заметками.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно, начиная с Windows 8.1. |
Целевая платформа | Персональный компьютер |
Верхняя часть | sercx.h |
IRQL | Вызывается в IRQL <= DISPATCH_LEVEL. |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по