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


функция обратного вызова WUDF_INTERRUPT_ENABLE (wudfinterrupt.h)

Предупреждение

UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с помощью UMDF.

Функция обратного вызова события OnInterruptEnable драйвера включает указанное аппаратное прерывание.

Синтаксис

WUDF_INTERRUPT_ENABLE WudfInterruptEnable;

HRESULT WudfInterruptEnable(
  [in] IWDFInterrupt *Interrupt,
  [in] IWDFDevice *AssociatedDevice
)
{...}

Параметры

[in] Interrupt

Указатель на интерфейс IWDFInterrupt .

[in] AssociatedDevice

Указатель на интерфейс IWDFDevice , который драйвер использовал для вызова CreateInterrupt.

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

Функция обратного вызова должна возвращать S_OK, если операция выполнена успешно. В противном случае обратный вызов должен возвращать один из кодов ошибок, определенных в Winerror.h.

Комментарии

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

Платформа вызывает функцию обратного вызова OnInterruptEnable драйвера каждый раз, когда устройство переходит в рабочее (D0) состояние. Кроме того, драйвер может вызвать функцию обратного вызова OnInterruptEnable , вызвав IWDFInterrupt::Enable.

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

После вызова функции обратного вызова OnInterruptEnable платформа вызывает функцию обратного вызова события OnD0EntryPostInterruptsEnabled драйвера.

Дополнительные сведения об обработке прерываний в драйверах UMDF см. в разделе Доступ к оборудованию и обработка прерываний.

Примеры

Тип функции объявлен в Wudfinterrupt.h, как показано ниже.

typedef
__drv_functionClass(WUDF_INTERRUPT_ENABLE)
HRESULT
WUDF_INTERRUPT_ENABLE(
    _In_
    IWDFInterrupt* Interrupt,
    _In_
    IWDFDevice* AssociatedDevice
    );

typedef WUDF_INTERRUPT_ENABLE *PFN_WUDF_INTERRUPT_ENABLE;

Чтобы определить функцию обратного вызова OnInterruptEnable с именем MyInterruptEnable, необходимо сначала предоставить объявление функции, которое требуется для SDV и других средств проверки, как показано ниже.

WUDF_INTERRUPT_ENABLE  MyInterruptEnable;

Затем реализуйте функцию обратного вызова следующим образом:

HRESULT
  MyInterruptEnable (
    IN IWDFInterrupt* pInterrupt,
    IN IWDFDevice*  pAssociatedDevice
    )
  {…}

Требования

Требование Значение
Дата окончания поддержки Недоступно в UMDF 2.0 и более поздних версиях.
Целевая платформа Персональный компьютер
Минимальная версия UMDF 1.11
Верхняя часть wudfinterrupt.h

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