функция обратного вызова 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.

См. также раздел

SERCX2PIOTRANSMIT

SerCx2PioTransmitCleanupTransactionComplete

SerCx2PioTransmitCreate