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


Функция WdfInterruptQueueWorkItemForIsr (wdfinterrupt.h)

[Относится к KMDF и UMDF]

Метод WdfInterruptQueueWorkItemForIsr помещает в очередь функцию обратного вызова EvtInterruptWorkItem объекта framework для выполнения.

Синтаксис

BOOLEAN WdfInterruptQueueWorkItemForIsr(
  [in] WDFINTERRUPT Interrupt
);

Параметры

[in] Interrupt

Дескриптор объекта прерывания платформы.

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

Если ISR драйвера выполняется в среде IRQL = PASSIVE_LEVEL, функция WdfInterruptQueueWorkItemForIsr возвращает значение TRUE , если она успешно помещает в очередь функцию обратного вызова EvtInterruptWorkItem объекта прерывания. Метод возвращает значение FALSE , если функция обратного вызова была ранее поставлена в очередь и не выполнялась.

Если ISR драйвера выполняется в irQL = DIRQL, платформа сначала помещает в очередь внутренний DPC, а затем помещает в очередь рабочий элемент из этого DPC. В этом случае WdfInterruptQueueWorkItemForIsr возвращает значение TRUE , если платформа успешно помещает внутренний DPC в очередь. Метод возвращает значение FALSE , если внутренний DPC был ранее поставлен в очередь.

Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Комментарии

Драйверы обычно вызывают WdfInterruptQueueWorkItemForIsr из функции обратного вызова EvtInterruptIsr .

Функция обратного вызова EvtInterruptWorkItem объекта прерывания может быть поставлена в очередь только один раз перед выполнением. Таким образом, если вызов WdfInterruptQueueWorkItemForIsr выполнен успешно, последующие вызовы не будут ставиться в очередь для дополнительных обратных вызовов.

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

Ошибка проверка возникает, если драйверы вызывают WdfInterruptQueueWorkItemForIsr с объектом прерывания, который не указывает функцию обратного вызова EvtInterruptWorkItem.

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1.11
Минимальная версия UMDF 2,0
Верхняя часть wdfinterrupt.h (включая Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DIRQL
Правила соответствия DDI DriverCreate(kmdf)

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

EvtInterruptDpc

EvtInterruptIsr

WdfInterruptCreate

WdfInterruptQueueDpcForIsr