Метод IWDFInterrupt::TryToAcquireInterruptLock (wudfddi.h)
[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с помощью UMDF.]
Метод TryToAcquireInterruptLock получает блокировку прерывания, если ни один другой поток не получил ее.
Синтаксис
BOOLEAN TryToAcquireInterruptLock();
Возвращаемое значение
Метод возвращает значение TRUE, если блокировка прерывания была успешно получена. В противном случае метод возвращает значение FALSE.
Комментарии
В отличие от IWDFInterrupt::AcquireInterruptLock, IWDFInterrupt::TryToAcquireInterruptLock не дожидается, пока блокировка прерывания станет доступной, если ее удерживает другой поток.
При выполнении в произвольном потоке, например метод обратного вызова очереди ввода-вывода, драйверы должны вызывать IWDFInterrupt::TryToAcquireInterruptLock вместо IWDFInterrupt::AcquireInterruptLock. Например, драйвер вызывает IWDFInterrupt::TryToAcquireInterruptLock из IQueueCallbackRead::OnRead. Это позволяет избежать взаимоблокировки, как описано в разделе Примечания статьи IWDFInterrupt::AcquireInterruptLock.
Драйвер не должен пытаться получить блокировку рекурсивно. При подключении к отладчику платформа вводит точку останова в этом сценарии.
Дополнительные сведения о блокировке прерываний вручную см. в разделе Синхронизация кода прерываний.
Дополнительные сведения об обработке прерываний в драйверах UMDF см. в разделе Доступ к оборудованию и обработка прерываний.
Требования
Требование | Значение |
---|---|
Дата окончания поддержки | Недоступно в UMDF 2.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Минимальная версия UMDF | 1.11 |
Верхняя часть | wudfddi.h |
DLL | WUDFx.dll |