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


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

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

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

См. также