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