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


функция обратного вызова 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. Дополнительные сведения о Use_decl_annotationsсм. в поведению функции.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 8.1.
целевая платформа Настольный
заголовка sercx.h
IRQL Вызывается в IRQL <= DISPATCH_LEVEL.

См. также

SERCX2SYSTEMDMARECEIVE

SerCx2SystemDmaReceiveCreate

SerCx2SystemDmaReceiveInitializeTransactionComplete