Функция обратного вызова EVT_SERCX_FILECLEANUP (серккс. h)

Функция обратного вызова события евтсеркксфилеклеануп уведомляет драйвер последовательного контроллера, что клиент закрыл последний маркер в файловый объект, представляющий устройство последовательного контроллера.

Синтаксис

EVT_SERCX_FILECLEANUP EvtSercxFilecleanup;

void EvtSercxFilecleanup(
  [in] WDFDEVICE Device
)
{...}

Параметры

[in] Device

ВДФДЕВИЦЕный обработчик объекта устройства платформы, представляющий контроллер последовательного порта.

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

None

Remarks

Эта функция может освободить определенные системные ресурсы, которые ранее были выделены драйвером в течение времени существования объекта файла. В сочетании с функцией евтсеркксфилеклосе функция евтсеркксфилеклеануп должна удалить устройство последовательного контроллера из состояния, в котором оно готово к получению и передаче данных. Функция евтсеркксфилеклеануп должна сосредоточить особое внимание на задачах очистки, таких как освобождение памяти.

Если драйвер последовательного контроллера, выданный ранее, выделил память только в течение времени существования закрытого объекта File, драйвер должен освободить эту память в функции евтсеркксфилеклеануп или евтсеркксфилеклосе .

Как правило, прерывания следует отключать только после освобождения объекта File. Таким же, функция евтсеркксфилеклосе , а не функция евтсеркксфилеклеануп , должна отключить прерывания.

Серккс вызывает функцию евтсеркксфилеклеануп драйвера после закрытия последнего маркера файлового объекта. Из-за невыполненных запросов ввода-вывода этот объект может еще не освободиться. После этого вызова драйвер не получит новые запросы на операции ввода-вывода.

Серккс вызывает функцию евтсеркксфилеклосе драйвера после вызова функции евтсеркксфилеклеануп драйвера. Серккс вызывает функцию евтсеркксфилеклосе после освобождения объекта File, что происходит только после завершения или отмены всех необработанных запросов ввода-вывода.

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

Чтобы зарегистрировать функцию обратного вызова евтсеркксфилеклеануп , драйвер должен вызвать метод серкксинитиализе .

Дополнительные сведения см. в разделе файловые объекты платформы.

Примеры

Тип функции для этого обратного вызова объявляется в Серккс. h следующим образом.

typedef VOID
  EVT_SERCX_FILECLEANUP(
    __in WDFDEVICE Device
    );

Чтобы определить функцию обратного вызова евтсеркксфилеклеануп с именем MyEvtSerCxFileCleanup , сначала необходимо предоставить объявление функции, которое требуется для статического средства проверки драйверов (СДВ) и других средств проверки, как показано ниже.

EVT_SERCX_FILECLEANUP MyEvtSerCxFileCleanup;

Затем реализуйте функцию обратного вызова, как показано ниже.

VOID
  MyEvtSerCxFileCleanup(
    __in WDFDEVICE Device
    )
{ ... }

Дополнительные сведения о требованиях СДВ к объявлениям функций см. в разделе объявление функций с помощью типов ролей функций для драйверов кмдф.

Требования

   
Минимальная версия клиента Доступно, начиная с Windows 8.
Целевая платформа Рабочий стол
Header серккс. h
УРОВЕНЬ Вызывается на уровне IRQL <= DISPATCH_LEVEL

См. также раздел

евтсеркксфилеклосе

серкксинитиализе