Функция 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) |