Функция WdfWaitLockCreate (wdfsync.h)
[Применимо к KMDF и UMDF]
Метод WdfWaitLockCreate создает объект wait-lock платформы.
Синтаксис
NTSTATUS WdfWaitLockCreate(
[in, optional] PWDF_OBJECT_ATTRIBUTES LockAttributes,
[out] WDFWAITLOCK *Lock
);
Параметры
[in, optional] LockAttributes
Указатель на структуру, выделенную вызывающим объектом, WDF_OBJECT_ATTRIBUTES, которая задает атрибуты объекта wait-lock. Этот параметр является необязательным и может быть WDF_NO_OBJECT_ATTRIBUTES.
[out] Lock
Указатель на расположение, которое получает дескриптор к новому объекту wait-lock платформы.
Возвращаемое значение
WdfWaitLockCreate возвращает STATUS_SUCCESS, если операция завершится успешно.
Список других возвращаемых значений, которые может возвращать метод WdfWaitLockCreate , см. в ошибках создания объектов Framework.
Этот метод также может возвращать другие значения NTSTATUS.
Замечания
Метод WdfWaitLockCreate создает объект wait-lock платформы. После создания объекта wait-lock драйвер может вызвать WdfWaitLockAcquire, чтобы получить блокировку и WdfWaitLockRelease, чтобы освободить блокировку.
По умолчанию родительский объект wait-lock — это объект драйвера платформы, созданный методом WdfDriverCreate. Вы можете использовать элемент ParentObject структуры WDF_OBJECT_ATTRIBUTES для указания другого родительского элемента. Платформа удаляет объект wait-lock при удалении родительского объекта. Если драйвер не изменяет родительский объект по умолчанию, драйвер должен удалить объект wait-lock после завершения использования объекта; в противном случае объект останется до тех пор, пока диспетчер ввода-вывода не выгрузит драйвер.
Дополнительные сведения о блокировках ожидания см. в разделе Методы синхронизации драйверов Framework-Based.
Примеры
В следующем примере кода инициализируется WDF_OBJECT_ATTRIBUTES, указывается, что родительский объект блокировки ожидания будет объектом устройства и вызывает WdfWaitLockCreate.
WDF_OBJECT_ATTRIBUTES attributes;
WDFWAITLOCK lockHandle;
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfWaitLockCreate(
&attributes,
&lockHandle
);
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
минимальная версия KMDF | 1.0 |
минимальная версия UMDF | 2.0 |
заголовка | wdfsync.h (include Wdf.h) |
библиотеки | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
правил соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ParentObjectCheckLock(kmdf) |