функция обратного вызова EVT_SERCX2_SYSTEM_DMA_TRANSMIT_INITIALIZE_TRANSACTION (sercx.h)
Функция обратного вызова событий EvtSerCx2SystemDmaTransmitInitializeTransaction вызывается версией 2 расширения последовательной платформы (SerCx2) для подготовки драйвера последовательного контроллера к выполнению транзакции передачи данных системы DMA.
Синтаксис
EVT_SERCX2_SYSTEM_DMA_TRANSMIT_INITIALIZE_TRANSACTION EvtSercx2SystemDmaTransmitInitializeTransaction;
void EvtSercx2SystemDmaTransmitInitializeTransaction(
[in] SERCX2SYSTEMDMATRANSMIT SystemDmaTransmit,
[in] ULONG Length
)
{...}
Параметры
[in] SystemDmaTransmit
Дескриптор SERCX2SYSTEMDMATRANSMIT объекту передачи system-DMA. Драйвер последовательного контроллера ранее вызвал метод SerCx2SystemDmaTransmitCreate для создания этого объекта.
[in] Length
Количество байтов, передаваемых в транзакцию передачи system-DMA.
Возвращаемое значение
Никакой
Замечания
Драйвер последовательного контроллера может реализовать эту функцию в качестве параметра. При реализации драйвер регистрирует функцию в вызове serCx2SystemDmaTransmitCreate , который создает объект передачи system-DMA.
Драйвер должен реализовать функцию EvtSerCx2SystemDmaTransmitInitializeTransaction, если необходимо инициализировать последовательный контроллер и связанное оборудование при подготовке к новой транзакции передачи системы DMA. SerCx2 вызывает эту функцию, если она реализована до запуска транзакции передачи системы DMA. В ответ на этот вызов драйвер последовательного контроллера должен вызвать метод SerCx2SystemDmaTransmitInitializeTransactionComplete, чтобы уведомить SerCx2 после завершения инициализации.
Дополнительные сведения см. в разделе SerCx2 System-DMA-Transmit Transactions.
Примеры
Чтобы определить функцию обратного вызова EvtSerCx2SystemDmaTransmitInitializeTransaction, необходимо сначала указать объявление функции, определяющее тип определяемой функции обратного вызова. Windows предоставляет набор типов функций обратного вызова для драйверов. Объявление функции с помощью типов функций обратного вызова помогает анализ кода для драйверов, статический проверяющий драйвер (SDV) и другие средства проверки подлинности, и это требование для написания драйверов для операционной системы Windows.
Например, чтобы определить функцию обратного вызова EvtSerCx2SystemDmaTransmitInitializeTransaction, которая называется MySystemDmaTransmitInitializeTransaction
, используйте тип функции EVT_SERCX2_SYSTEM_DMA_TRANSMIT_INITIALIZE_TRANSACTION, как показано в этом примере кода:
EVT_SERCX2_SYSTEM_DMA_TRANSMIT_INITIALIZE_TRANSACTION MySystemDmaTransmitInitializeTransaction;
Затем реализуйте функцию обратного вызова следующим образом:
_Use_decl_annotations_
VOID
MySystemDmaTransmitInitializeTransaction(
SERCX2SYSTEMDMATRANSMIT SystemDmaTransmit,
ULONG Length
)
{...}
Тип функции EVT_SERCX2_SYSTEM_DMA_TRANSMIT_INITIALIZE_TRANSACTION определен в файле заголовка Sercx.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте в определение функции заметку Use_decl_annotations. Заметка Use_decl_annotations гарантирует, что используются заметки, применяемые к типу функции EVT_SERCX2_SYSTEM_DMA_TRANSMIT_INITIALIZE_TRANSACTION в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в объявлении функций с помощью типов ролей функций для драйверов KMDF. Дополнительные сведения о
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 8.1. |
целевая платформа | Настольный |
заголовка | sercx.h |
IRQL | Вызывается в IRQL <= DISPATCH_LEVEL. |