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


функция обратного вызова 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

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

IWDFDevice3::CreateInterrupt

WUDF_INTERRUPT_CONFIG