функция обратного вызова EVT_SERCX2_SYSTEM_DMA_RECEIVE_INITIALIZE_TRANSACTION (sercx.h)
Функция обратного вызова событий EvtSerCx2EvtSerCx2SystemDmaReceiveInitializeTransaction вызывается функцией обратного вызова событий версии 2 расширения последовательной платформы (SerCx2), чтобы подготовить драйвер последовательного контроллера для выполнения транзакции с получением системы DMA.
Синтаксис
EVT_SERCX2_SYSTEM_DMA_RECEIVE_INITIALIZE_TRANSACTION EvtSercx2SystemDmaReceiveInitializeTransaction;
void EvtSercx2SystemDmaReceiveInitializeTransaction(
[in] SERCX2SYSTEMDMARECEIVE SystemDmaReceive,
[in] ULONG Length
)
{...}
Параметры
[in] SystemDmaReceive
Дескриптор SERCX2SYSTEMDMARECEIVE объекту system-DMA-receive. Драйвер последовательного контроллера ранее вызвал метод SerCx2SystemDmaReceiveCreate для создания этого объекта.
[in] Length
Количество байтов, передаваемых в транзакцию получения системы DMA.
Возвращаемое значение
Никакой
Замечания
Драйвер последовательного контроллера может реализовать эту функцию в качестве параметра. При реализации драйвер регистрирует функцию в вызове serCx2SystemDmaReceiveCreate, который создает объект system-DMA-receive.
Драйвер должен реализовать функцию EvtSerCx2EvtSerCx2SystemDmaReceiveInitializeTransaction, если она должна инициализировать последовательный контроллер и связанное оборудование в подготовке к новой транзакции получения системы-DMA. SerCx2 вызывает эту функцию, если она реализована до запуска транзакции system-DMA-receive. В ответ на этот вызов драйвер последовательного контроллера должен вызвать метод SerCx2SystemDmaReceiveInitializeTransactionComplete, чтобы уведомить SerCx2 после завершения инициализации.
Дополнительные сведения см. в разделе SerCx2 System-DMA-Receive Transactions.
Примеры
Чтобы определить функцию обратного вызова EvtSerCx2EvtSerCx2SystemDmaReceiveInitializeTransaction, необходимо сначала указать объявление функции, определяющее тип определяемой функции обратного вызова. Windows предоставляет набор типов функций обратного вызова для драйверов. Объявление функции с помощью типов функций обратного вызова помогает анализ кода для драйверов, статический проверяющий драйвер (SDV) и другие средства проверки подлинности, и это требование для написания драйверов для операционной системы Windows.
Например, чтобы определить функцию обратного вызова EvtSerCx2EvtSerCx2SystemDmaReceiveInitializeTransaction, которая называется MySystemDmaReceiveInitializeTransaction
, используйте тип функции EVT_SERCX2_SYSTEM_DMA_RECEIVE_INITIALIZE_TRANSACTION, как показано в этом примере кода:
EVT_SERCX2_SYSTEM_DMA_RECEIVE_INITIALIZE_TRANSACTION MySystemDmaReceiveInitializeTransaction;
Затем реализуйте функцию обратного вызова следующим образом:
_Use_decl_annotations_
VOID
MySystemDmaReceiveInitializeTransaction(
SERCX2SYSTEMDMARECEIVE SystemDmaReceive,
ULONG Length
)
{...}
Тип функции EVT_SERCX2_SYSTEM_DMA_RECEIVE_INITIALIZE_TRANSACTION определен в файле заголовка Sercx.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте в определение функции заметку Use_decl_annotations. Заметка Use_decl_annotations гарантирует, что используются заметки, применяемые к типу функции EVT_SERCX2_SYSTEM_DMA_RECEIVE_INITIALIZE_TRANSACTION в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в объявлении функций с помощью типов ролей функций для драйверов KMDF. Дополнительные сведения о
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 8.1. |
целевая платформа | Настольный |
заголовка | sercx.h |
IRQL | Вызывается в IRQL <= DISPATCH_LEVEL. |