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


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

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

Синтаксис

EVT_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION EvtSercx2SystemDmaReceiveCancelNewDataNotification;

BOOLEAN EvtSercx2SystemDmaReceiveCancelNewDataNotification(
  [in] SERCX2SYSTEMDMARECEIVE SystemDmaReceive
)
{...}

Параметры

[in] SystemDmaReceive

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

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

Функция EvtSerCx2SystemDmaReceiveCancelNewDataNot ification возвращает TRUE, если новое уведомление было успешно отменено, а драйвер последовательного контроллера может гарантировать, что это уведомление не приведет к вызову метода SerCx2SystemDmaReceiveNewDataNotification. Функция возвращает FALSE, если драйвер уже вызвал метод SerCx2SystemDmaReceiveNewDataNotification или будет вызывать этот метод.

Замечания

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

Если связанный запрос чтения истекает или отменяется во время ожидания запроса на уведомление о новых данных, SerCx2 вызывает функцию EvtSerCerCx2SystemDmaReceiveCancelNewDataNotification, чтобы отменить ожидающее уведомление. Если этот вызов возвращает FALSE, SerCx2 ожидает, что драйвер последовательного контроллера вызовет SerCx2SystemDmaReceiveNewDataNotification; только после этого вызова SerCx2 вызывает функцию EvtSerCx2SystemDmaReceiveCleanupTransaction, если она реализована, и завершите запрос.

Чтобы отменить уведомление о новых данных, функция EvtSerCx2SystemDmaReceiveCancelNewDataNotification обычно отключает прерывание в последовательном контроллере, указывающее, что дополнительные данные доступны для чтения из получения FIFO. Это прерывание было включено предыдущим вызовом функции EvtSerCx2SystemDmaReceiveEnableNewDataNotification.

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

Примеры

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

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

EVT_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION  MySystemDmaReceiveCancelNewDataNotification;

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

_Use_decl_annotations_
BOOLEAN
  MySystemDmaReceiveCancelNewDataNotification(
    SERCX2SYSTEMDMARECEIVE  SystemDmaReceive
    )
  {...}

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

Требования

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

См. также

EvtSerCx2SystemDmaReceiveEnableNewDataNotification

SERCX2SYSTEMDMARECEIVE

SerCx2SystemDmaReceiveCreate

SerCx2SystemDmaReceiveNewDataNotification