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


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

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

Синтаксис

EVT_SERCX2_PIO_RECEIVE_CANCEL_READY_NOTIFICATION EvtSercx2PioReceiveCancelReadyNotification;

BOOLEAN EvtSercx2PioReceiveCancelReadyNotification(
  [in] SERCX2PIORECEIVE PioReceive
)
{...}

Параметры

[in] PioReceive

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

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

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

Замечания

Драйвер последовательного контроллера должен реализовать эту функцию. Драйвер регистрирует функцию в вызове SerCx2PioReceiveCreate, который создает объект piO-receive.

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

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

Дополнительные сведения см. в разделе SerCx2 PIO-Receive Транзакций.

Примеры

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

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

EVT_SERCX2_PIO_RECEIVE_CANCEL_READY_NOTIFICATION  MyPioReceiveCancelReadyNotification;

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

_Use_decl_annotations_
BOOLEAN
  MyPioReceiveCancelReadyNotification(
    SERCX2PIORECEIVE  PioReceive
    )
  {...}

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

Требования

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

См. также

EvtSerCx2PioReceiveEnableReadyNotification

SERCX2PIORECEIVE

SerCx2PioReceiveCreate

SerCx2PioReceiveReady