Функция WdfInterruptReleaseLock (wdfinterrupt.h)
[Применимо к KMDF и UMDF]
Метод WdfInterruptReleaseLock завершает последовательность кода, которая выполняется в DIRQL устройства, удерживая блокировку спина объекта прерывания.
Для объектов прерывания пассивного уровня метод завершает последовательность кода, которая выполняется на пассивном уровне, удерживая пассивную блокировку объекта прерывания.
Синтаксис
void WdfInterruptReleaseLock(
[in] WDFINTERRUPT Interrupt
);
Параметры
[in] Interrupt
Дескриптор объекта прерывания платформы.
Комментарии
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Метод WdfInterruptReleaseLock освобождает блокировку спина или ожидание указанного объекта прерывания и возвращает irQL процессора до уровня, заданного перед драйвером WdfInterruptAcquireLock.
Драйвер не может вызвать WdfInterruptReleaseLock до того, как платформа вызовет функцию обратного вызова EvtInterruptEnable драйвера или после того, как платформа вызвала функцию обратного вызова EvtInterruptDisable драйвера.
Дополнительные сведения о методе WdfInterruptReleaseLock см. в разделе Синхронизация кода прерывания.
Дополнительные сведения об обработке прерываний в драйверах на основе платформы см. в разделе Обработка аппаратных прерываний.
Этот метод должен вызываться в DIRQL, заданном WdfInterruptAcquireLock.
Для прерываний пассивного уровня драйвер должен вызвать WdfInterruptReleaseLock в IRQL = PASSIVE_LEVEL.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfinterrupt.h (включая Wdf.h) |
IRQL | См. раздел "Примечания". |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), WdfInterruptLock(kmdf), WdfInterruptLockRelease(kmdf) |