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


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

См. также

IWDFInterrupt

IWDFInterrupt::AcquireInterruptLock

WdfInterruptTryToAcquireLock