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


функция обратного вызова EVT_SERCX2_PIO_TRANSMIT_INITIALIZE_TRANSACTION (sercx.h)

Функция обратного вызова события EvtSerCx2PioTransmitInitializeTransaction вызывается версией 2 расширения последовательной платформы (SerCx2) для подготовки драйвера последовательного контроллера к выполнению транзакции передачи персональных данных.

Синтаксис

EVT_SERCX2_PIO_TRANSMIT_INITIALIZE_TRANSACTION EvtSercx2PioTransmitInitializeTransaction;

void EvtSercx2PioTransmitInitializeTransaction(
  [in] SERCX2PIOTRANSMIT PioTransmit,
  [in] ULONG Length
)
{...}

Параметры

[in] PioTransmit

Дескриптор SERCX2PIOTRANSMIT к объекту pio-передачи. Драйвер последовательного контроллера ранее вызывал метод SerCx2PioTransmitCreate для создания этого объекта.

[in] Length

Количество байтов, передаваемых в транзакции передачи персональных данных.

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

None

Remarks

Драйвер последовательного контроллера может, как вариант, реализовать эту функцию. При реализации драйвер регистрирует функцию в вызове SerCx2PioTransmitCreate , который создает объект pio-передачи.

Драйвер должен реализовать функцию EvtSerCx2PioTransmitInitializeTransaction , если ему необходимо инициализировать последовательный контроллер и связанное оборудование для подготовки к новой транзакции передачи pio. SerCx2 вызывает эту функцию, если она реализована, перед началом транзакции передачи персональных данных. В ответ на этот вызов драйвер последовательного контроллера должен вызвать метод SerCx2PioTransmitInitializeTransactionComplete , чтобы уведомить SerCx2 после завершения инициализации.

Дополнительные сведения см. в разделе SerCx2 PIO-Transmit Transactions.

Примеры

Чтобы определить функцию обратного вызова EvtSerCx2PioTransmitInitializeTransaction , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции обратного вызова. Windows предоставляет набор типов функций обратного вызова для драйверов. Объявление функции с помощью типов функций обратного вызова помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить функцию обратного вызова EvtSerCx2PioTransmitInitializeTransaction с именем MyPioTransmitInitializeTransaction, используйте тип функции EVT_SERCX2_PIO_TRANSMIT_INITIALIZE_TRANSACTION , как показано в следующем примере кода:

EVT_SERCX2_PIO_TRANSMIT_INITIALIZE_TRANSACTION  MyPioTransmitInitializeTransaction;

Затем реализуйте функцию обратного вызова следующим образом:

_Use_decl_annotations_
VOID
  MyPioTransmitInitializeTransaction(
    SERCX2PIOTRANSMIT  PioTransmit,
    ULONG  Length
    )
  {...}

Тип функции EVT_SERCX2_PIO_TRANSMIT_INITIALIZE_TRANSACTION определен в файле заголовка Sercx.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции EVT_SERCX2_PIO_TRANSMIT_INITIALIZE_TRANSACTION в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов KMDF. Дополнительные сведения о Use_decl_annotations см. в статье Поведение функции с заметками.

Требования

Требование Значение
Минимальная версия клиента Доступно, начиная с Windows 8.1.
Целевая платформа Персональный компьютер
Верхняя часть sercx.h
IRQL Вызывается в IRQL <= DISPATCH_LEVEL.

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

SERCX2PIOTRANSMIT

SerCx2PioTransmitCreate

SerCx2PioTransmitInitializeTransactionComplete