Метод 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 |