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


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

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

Синтаксис

EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CANCEL_DRAIN_FIFO EvtSercx2SystemDmaTransmitCancelDrainFifo;

BOOLEAN EvtSercx2SystemDmaTransmitCancelDrainFifo(
  [in] SERCX2SYSTEMDMATRANSMIT SystemDmaTransmit
)
{...}

Параметры

[in] SystemDmaTransmit

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

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

Функция EvtSerCx2SystemDmaTransmitCanmitCancelDrainFifo возвращает TRUE, если она успешно отменяет ожидающий запрос на очистку, а драйвер последовательного контроллера может гарантировать, что он не будет вызывать метод SerCx2SystemDmaTransmitDrainFifoComplete, чтобы уведомить SerCx2 о том, что FIFO не будет удален. В противном случае эта функция возвращает FALSE, чтобы указать, что драйвер уже вызвал или будет вызывать SerCx2SystemDmaTransmitDrainFifoComplete.

Замечания

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

Драйвер должен реализовать функцию EvtSerCx2SystemDmaTransmitCancelDrainFifo, если последовательный контроллер имеет аппаратный механизм FIFO (или аналогичный механизм буферизации) для хранения передаваемых данных. Если драйвер реализует эту функцию, он также должен реализовать функции обратного вызова событий EvtSerCx2SystemDmaTransmitDrainFifo и EvtSerCx2SystemDmaTransmitPurgeFifo.

После вызова функции обратного вызова событий SerCx2 EvtSerCx2SystemDmaTransmitDrainFifo функцию обратного вызова события, чтобы запросить, чтобы драйвер последовательного контроллера осушил передачу FIFO, SerCx2 может вызвать функцию EvtSerCx2SystemDmaTransmitCanmitCancelDrainFifo, чтобы отменить ожидающий запрос на очистку до завершения очистки FIFO. Например, SerCx2 может вызвать функцию EvtSerCx2SystemDmaTransmitCancelDrainFifo, если клиент отменяет ожидающий запрос записи (IRP_MJ_WRITE) или время ожидания записи.

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

Примеры

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

Например, чтобы определить функцию обратного вызова EvtSerCx2SystemDmaTransmitCancelDrainFifo, которая называется MySystemDmaTransmitCancelDrainFifo, используйте тип функции EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CANCEL_DRAIN_FIFO, как показано в этом примере кода:

EVT_SERCX2_SYSTEM_DMA_TRANSMIT_CANCEL_DRAIN_FIFO  MySystemDmaTransmitCancelDrainFifo;

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

_Use_decl_annotations_
BOOLEAN
  MySystemDmaTransmitCancelDrainFifo(
    SERCX2SYSTEMDMATRANSMIT  SystemDmaTransmit
    )
  {...}

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

Требования

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

См. также

EvtSerCx2SystemDmaTransmitDrainFifo

EvtSerCx2SystemDmaTransmitPurgeFifo

IRP_MJ_WRITE

SERCX2SYSTEMDMATRANSMIT

SerCx2SystemDmaTransmitCreate

SerCx2SystemDmaTransmitDrainFifoComplete