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


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

Указатель на связанный объект.

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

Никакой

Замечания

Чтобы зарегистрировать функцию обратного вызова 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