Compartir a través de


Función WdfSpinLockCreate (wdfsync.h)

[Se aplica a KMDF y UMDF]

El método WdfSpinLockCreate crea un objeto de bloqueo por número de marco.

Sintaxis

NTSTATUS WdfSpinLockCreate(
  [in, optional] PWDF_OBJECT_ATTRIBUTES SpinLockAttributes,
  [out]          WDFSPINLOCK            *SpinLock
);

Parámetros

[in, optional] SpinLockAttributes

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

[out] SpinLock

Puntero a una ubicación que recibe un identificador para un nuevo objeto de bloqueo de número de marco.

Valor devuelto

WdfSpinLockCreate 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 WdfSpinLockCreate , vea Errores de creación de objetos de marco.

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

Comentarios

El método WdfSpinLockCreate crea un objeto de bloqueo por número de marco. Después de crear un objeto de bloqueo de número, un controlador puede llamar a WdfSpinLockAcquire para adquirir el bloqueo y WdfSpinLockRelease para liberar el bloqueo.

De forma predeterminada, el nuevo objeto primario del objeto spin-lock es el objeto del controlador de marco que creó el método WdfDriverCreate . Puede usar el miembro ParentObject de la estructura WDF_OBJECT_ATTRIBUTES para especificar un elemento primario diferente. El marco elimina el objeto spin-lock cuando elimina el objeto primario. Si el controlador no cambia el elemento primario predeterminado, el controlador debe eliminar el objeto de bloqueo de número 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 número, 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 número será un objeto de dispositivo y llama a WdfSpinLockCreate.

WDF_OBJECT_ATTRIBUTES attributes;
WDFSPINLOCK lockHandle;

WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfSpinLockCreate(
                           &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 (incluya 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), WdfSpinlock(kmdf)

Consulte también

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfSpinLockAcquire

WdfSpinLockRelease

Regla WdfSpinlock (KMDF)

Regla WdfSpinLockRelease (KMDF)