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) |