функция обратного вызова 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. |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по