IWDFInterrupt::TryToAcquireInterruptLock 方法 (wudfddi.h)
[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]
如果其他线程尚未获取中断锁, TryToAcquireInterruptLock 方法将获取中断锁。
语法
BOOLEAN TryToAcquireInterruptLock();
返回值
如果成功获取中断锁,该方法将返回 TRUE。 否则该方法返回 FALSE。
注解
与 IWDFInterrupt::AcquireInterruptLock 不同,如果另一个线程持有中断锁, IWDFInterrupt::TryToAcquireInterruptLock 不会等待中断锁可用。
在任意线程(如 I/O 队列回调方法)中运行时,驱动程序必须调用 IWDFInterrupt::TryToAcquireInterruptLock ,而不是 IWDFInterrupt::AcquireInterruptLock。 例如,驱动程序从 IQueueCallbackRead::OnRead 调用 IWDFInterrupt::TryToAcquireInterruptLock。 这样做可以避免死锁的可能性,如 IWDFInterrupt::AcquireInterruptLock 的“备注”部分所述。
驱动程序不得尝试以递归方式获取锁。 如果连接到调试器,框架将在此方案中引入断点。
有关手动中断锁定的详细信息,请参阅 同步中断代码。
有关在 UMDF 驱动程序中处理中断的详细信息,请参阅 访问硬件和处理中断。
要求
要求 | 值 |
---|---|
结束支持 | 在 UMDF 2.0 及更高版本中不可用。 |
目标平台 | 桌面 |
最低 UMDF 版本 | 1.11 |
标头 | wudfddi.h |
DLL | WUDFx.dll |