Функция 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) |