Функция 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, чтобы обычные API ядра.)
Если драйвер не указывать WdfExecutionLevelPassive для члена ExecutionLevel структуры WDF_OBJECT_ATTRIBUTES указанного объекта, драйвер должен вызвать WdfObjectAcquireLock в IRQL <= DISPATCH_LEVEL. WdfObjectAcquireLock получает блокировку спина и возвращается в IRQL = DISPATCH_LEVEL.
Дополнительные сведения о блокировках синхронизации см. в методах синхронизации для Framework-Based драйверов.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
минимальная версия KMDF | 1.0 |
минимальная версия UMDF | 2.0 |
заголовка | wdfsync.h (include Wdf.h) |
IRQL | См. раздел "Примечания". |
правил соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |