Compartir a través de


Función WdfWaitLockCreate (wdfsync.h)

[Se aplica a KMDF y UMDF]

El método WdfWaitLockCreate crea un objeto de bloqueo de espera de marco.

Sintaxis

NTSTATUS WdfWaitLockCreate(
  [in, optional] PWDF_OBJECT_ATTRIBUTES LockAttributes,
  [out]          WDFWAITLOCK            *Lock
);

Parámetros

[in, optional] LockAttributes

Puntero a una estructura de WDF_OBJECT_ATTRIBUTES asignada por el autor de la llamada que especifica atributos para el objeto wait-lock. Este parámetro es opcional y se puede WDF_NO_OBJECT_ATTRIBUTES.

[out] Lock

Puntero a una ubicación que recibe un identificador de un nuevo objeto wait-lock de marco.

Valor devuelto

WdfWaitLockCreate devuelve STATUS_SUCCESS si la operación se realiza correctamente.

Para obtener una lista de otros valores devueltos que podría devolver el método WdfWaitLockCreate, vea Errores de creación de objetos de marco.

Este método también puede devolver otros valores de NTSTATUS.

Observaciones

El método WdfWaitLockCreate crea un objeto de bloqueo de espera de marco. Después de crear un objeto wait-lock, un controlador puede llamar a WdfWaitLockAcquire para adquirir el bloqueo y WdfWaitLockRelease para liberar el bloqueo.

De forma predeterminada, el nuevo objeto primario del objeto wait-lock es el objeto de controlador de marco que creó el método WdfDriverCreate. Puede usar el miembro parentObject de de la estructura WDF_OBJECT_ATTRIBUTES para especificar un elemento primario diferente. El marco elimina el objeto wait-lock cuando elimina el objeto primario. Si el controlador no cambia el elemento primario predeterminado, el controlador debe eliminar el objeto wait-lock cuando haya terminado de usar el objeto ; De lo contrario, el objeto permanecerá hasta que el administrador de E/S descargue el controlador.

Para obtener más información sobre los bloqueos de espera, consulte Técnicas de sincronización para controladores de Framework-Based.

Ejemplos

En el ejemplo de código siguiente se inicializa un WDF_OBJECT_ATTRIBUTES, se especifica que el objeto primario del bloqueo de espera será un objeto de dispositivo y llama a WdfWaitLockCreate.

WDF_OBJECT_ATTRIBUTES attributes;
WDFWAITLOCK lockHandle;

WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfWaitLockCreate(
                           &attributes,
                           &lockHandle
                           );

Requisitos

Requisito Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.0
versión mínima de UMDF 2.0
encabezado de wdfsync.h (incluya Wdf.h)
biblioteca de Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
irQL <=DISPATCH_LEVEL
reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ParentObjectCheckLock(kmdf)

Consulte también

WDF_OBJECT_ATTRIBUTES

WdfDriverCrear

WdfWaitLockAcquire

WdfWaitLockRelease