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


Функция WdfObjectAcquireLock (wdfsync.h)

[Относится к KMDF и UMDF]

Метод WdfObjectAcquireLock получает блокировку синхронизации объекта.

Синтаксис

VOID WdfObjectAcquireLock(
  _In_ WDFOBJECT Object
);

Параметры

[in] Object

Дескриптор объекта устройства платформы или объекта очереди платформы.

Комментарии

Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Драйвер может вызвать метод WdfObjectAcquireLock , чтобы получить блокировку синхронизации, связанную с указанным объектом устройства платформы или объектом очереди платформы. Метод не возвращается, пока не будет получена блокировка.

Если драйвер больше не нуждается в блокировке синхронизации объекта, он должен вызвать WdfObjectReleaseLock.

Если драйвер указал WdfExecutionLevelPassive для элемента ExecutionLevelструктуры WDF_OBJECT_ATTRIBUTES указанного объекта, драйвер должен вызвать WdfObjectAcquireLock по адресу IRQL <= APC_LEVEL. WdfObjectAcquireLock получает быстрый мьютекс и возвращается в IRQL вызывающего объекта. (В этом случае WdfObjectAcquireLock также вызывает KeEnterCriticalRegion перед возвратом, чтобы обычные APC ядра были отключены.)

Если драйвер не указал WdfExecutionLevelPassive для элемента ExecutionLevel структуры WDF_OBJECT_ATTRIBUTES указанного объекта, драйвер должен вызвать WdfObjectAcquireLock по адресу IRQL <= DISPATCH_LEVEL. 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)

См. также раздел

WDF_OBJECT_ATTRIBUTES

KeEnterCriticalRegion

WdfObjectReleaseLock