функция обратного вызова WUDF_INTERRUPT_WORKITEM (wudfinterrupt.h)
[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. В UMDF 1 новые функции не добавляются, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с UMDF.]
Функция обратного вызова события OnInterruptWorkItem драйвера обрабатывает сведения о прерывании, сохраненные функцией обратного вызова OnInterruptIsr драйвера.
Синтаксис
WUDF_INTERRUPT_WORKITEM WudfInterruptWorkitem;
void WudfInterruptWorkitem(
[in] IWDFInterrupt *Interrupt,
[in] IWDFObject *AssociatedObject
)
{...}
Параметры
[in] Interrupt
Указатель на интерфейс объекта прерывания, связанный с рабочим элементом.
[in] AssociatedObject
Указатель на связанный объект.
Возвращаемое значение
None
Remarks
Чтобы зарегистрировать функцию обратного вызова OnInterruptWorkItem , драйвер должен поместить адрес функции обратного вызова в структуру WUDF_INTERRUPT_CONFIG перед вызовом IWDFDevice3::CreateInterrupt.
После остановки и подтверждения прерывания драйвер должен быстро вернуться из обратного вызова OnInterruptIsr , отложив любую дополнительную обработку обратного вызова OnInterruptWorkItem .
Дополнительные сведения об обработке прерываний в драйверах UMDF см. в разделе Доступ к оборудованию и обработка прерываний.
Примеры
Тип функции объявлен в Wudfworkitem.h, как показано ниже.
typedef
_Function_class_(WUDF_INTERRUPT_WORKITEM)
VOID
WUDF_INTERRUPT_WORKITEM(
_In_
IWDFInterrupt* Interrupt,
_In_
IWDFObject* AssociatedObject
);
typedef WUDF_INTERRUPT_WORKITEM *PFN_WUDF_INTERRUPT_WORKITEM;
Чтобы определить функцию обратного вызова OnInterruptWorkItem с именем MyInterruptWorkItem, необходимо сначала предоставить объявление функции, которое требуется ДЛЯ SDV и других средств проверки, как показано ниже.
WUDF_INTERRUPT_WORKITEM MyInterruptWorkItem;
Затем реализуйте функцию обратного вызова следующим образом:
VOID
MyInterruptWorkItem (
_In_
IWDFInterrupt* Interrupt,
_In_
IWDFObject* AssociatedObject
)
{…}
Требования
Требование | Значение |
---|---|
Дата окончания поддержки | Недоступно в UMDF 2.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Минимальная версия UMDF | 1.11 |
Верхняя часть | wudfinterrupt.h |