функция обратного вызова EVT_SERCX2_PURGE_FIFOS (sercx.h)
Функция обратного вызова событий EvtSerCx2PurgeFifos вызывается версией 2 расширения последовательной платформы (SerCx2), чтобы очистить буферы FIFO в оборудовании последовательного контроллера.
Синтаксис
EVT_SERCX2_PURGE_FIFOS EvtSercx2PurgeFifos;
void EvtSercx2PurgeFifos(
[in] WDFDEVICE Device,
[in] BOOLEAN PurgeRxFifo,
[in] BOOLEAN PurgeTxFifo
)
{...}
Параметры
[in] Device
Дескриптор WDFDEVICE для объекта устройства платформы, представляющего последовательный контроллер. Драйвер последовательного контроллера создал этот объект в своей функции обратного вызова EvtDriverDeviceAdd. Дополнительные сведения см. в разделе SerCx2InitializeDevice.
[in] PurgeRxFifo
Следует ли очищать получение FIFO. Если для этого параметра задано значение TRUE, очистка получения FIFO. Если false, не очищайте получение FIFO.
[in] PurgeTxFifo
Следует ли очищать передачу FIFO. Если для этого параметра задано значение TRUE, очистка передачи FIFO. Если FALSE, не очищайте передачу FIFO.
Возвращаемое значение
Никакой
Замечания
Драйвер последовательного контроллера должен реализовать эту функцию. Драйвер регистрирует функцию в вызове метода SerCx2InitializeDevice, который завершает инициализацию объекта устройства платформы для последовательного контроллера.
SerCx2 вызывает функцию EvtSerCx2PurgeFifos, когда клиент (периферийный драйвер) отправляет запрос на управление IOCTL_SERIAL_PURGE, требующий очистки одного или обоих буферов FIFO в оборудовании последовательного контроллера. Если запрос на управление IOCTL_SERIAL_PURGE требует отмены ожидающих запросов на чтение или запись (IRP_MJ_READ или IRP_MJ_WRITE), SerCx2 отменяет эти запросы перед вызовом функции EvtSerCx2PurgeFifos.
SerCx2 также вызывает функцию EvtSerCx2PurgeFifos, когда клиент открывает логическое подключение к устройству последовательного контроллера и получает дескриптор файла для этого подключения. Дополнительные сведения см. в разделе Объектов файлов платформы.
Примеры
Чтобы определить функцию обратного вызова EvtSerCx2PurgeFifos, необходимо сначала указать объявление функции, определяющее тип определяемой функции обратного вызова. Windows предоставляет набор типов функций обратного вызова для драйверов. Объявление функции с помощью типов функций обратного вызова помогает анализ кода для драйверов, статический проверяющий драйвер (SDV) и другие средства проверки подлинности, и это требование для написания драйверов для операционной системы Windows.
Например, чтобы определить функцию обратного вызова EvtSerCx2PurgeFifos, которая называется MyPurgeFifos
, используйте тип функции EVT_SERCX2_PURGE_FIFOS, как показано в следующем примере кода:
EVT_SERCX2_PURGE_FIFOS MyPurgeFifos;
Затем реализуйте функцию обратного вызова следующим образом:
_Use_decl_annotations_
VOID
MyPurgeFifos(
WDFDEVICE Device,
BOOLEAN PurgeRxFifo,
BOOLEAN PurgeTxFifo
)
{...}
Тип функции EVT_SERCX2_PURGE_FIFOS определен в файле заголовка Sercx.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте в определение функции заметку Use_decl_annotations. Заметка Use_decl_annotations гарантирует, что используются заметки, применяемые к типу функции EVT_SERCX2_PURGE_FIFOS в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в объявлении функций с помощью типов ролей функций для драйверов KMDF. Дополнительные сведения о
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 8.1. |
целевая платформа | Настольный |
заголовка | sercx.h |
IRQL | Звонил в PASSIVE_LEVEL. |