WdfObjectAcquireLock 函数 (wdfsync.h)
[适用于 KMDF 和 UMDF]
WdfObjectAcquireLock 方法获取对象的同步锁。
语法
VOID WdfObjectAcquireLock(
_In_ WDFOBJECT Object
);
参数
[in] Object
框架设备对象或框架队列对象的句柄。
注解
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
驱动程序可以调用 WdfObjectAcquireLock 方法来获取与指定的框架设备对象或框架队列对象关联的同步锁。 方法在获取锁之前不会返回。
当驱动程序不再需要对象的同步锁时,它必须调用 WdfObjectReleaseLock。
如果驱动程序为指定对象的WDF_OBJECT_ATTRIBUTES结构的 ExecutionLevel 成员指定了 WdfExecutionLevelPassive,则驱动程序必须在 IRQL <= APC_LEVEL调用 WdfObjectAcquireLock。 WdfObjectAcquireLock 获取 快速互斥体 ,并在调用方 IRQL 处返回 。 (在这种情况下, WdfObjectAcquireLock 还会在返回之前调用 KeEnterCriticalRegion ,以便禁用 正常的内核 APC 。)
如果驱动程序未为指定对象的 WDF_OBJECT_ATTRIBUTES 结构的 ExecutionLevel 成员指定 WdfExecutionLevelPassive,则驱动程序必须在 IRQL <= DISPATCH_LEVEL 调用 WdfObjectAcquireLock。 WdfObjectAcquireLock 获取 自旋锁 ,并在 IRQL = DISPATCH_LEVEL 返回。
有关同步锁的详细信息,请参阅 Framework-Based 驱动程序的同步技术。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfsync.h (包括 Wdf.h) |
IRQL | 请参见“备注”部分。 |
DDI 符合性规则 | DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) |