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 los atributos para el objeto wait-lock. Este parámetro es opcional y puede ser 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 puede devolver el método WdfWaitLockCreate , vea Errores de creación de objetos de marco.

Este método también podría devolver otros valores NTSTATUS.

Comentarios

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 la estructura WDF_OBJECT_ATTRIBUTES para especificar otro elemento primario. 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, vea 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 Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfsync.h (incluir Wdf.h)
Library 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

WdfDriverCreate

WdfWaitLockAcquire

WdfWaitLockRelease