Compartilhar via


Função WdfSpinLockCreate (wdfsync.h)

[Aplica-se a KMDF e UMDF]

O método WdfSpinLockCreate cria um objeto de bloqueio de rotação da estrutura.

Sintaxe

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

Parâmetros

[in, optional] SpinLockAttributes

Um ponteiro para uma estrutura de WDF_OBJECT_ATTRIBUTES alocada pelo chamador que especifica atributos para o objeto spin-lock. Esse parâmetro é opcional e pode ser WDF_NO_OBJECT_ATTRIBUTES.

[out] SpinLock

Um ponteiro para um local que recebe um identificador para um novo objeto de bloqueio de rotação da estrutura.

Valor de retorno

WdfSpinLockCreate retornará STATUS_SUCCESS se a operação for bem-sucedida.

Para obter uma lista de outros valores retornados que o método WdfSpinLockCreate pode retornar, consulte Framework Object Creation Errors.

Esse método também pode retornar outros valores NTSTATUS .

Observações

O método WdfSpinLockCreate cria um objeto de bloqueio de rotação da estrutura. Depois de criar um objeto de bloqueio de rotação, um driver pode chamar WdfSpinLockAcquire para adquirir o bloqueio e WdfSpinLockRelease para liberar o bloqueio.

Por padrão, o pai do novo objeto spin-lock é o objeto de driver da estrutura que o método WdfDriverCreate criado. Você pode usar o ParentObject membro da estrutura WDF_OBJECT_ATTRIBUTES para especificar um pai diferente. A estrutura exclui o objeto spin-lock quando exclui o objeto pai. Se o driver não alterar o pai padrão, o driver deverá excluir o objeto spin-lock quando terminar de usar o objeto; caso contrário, o objeto permanecerá até que o gerente de E/S descarregue o driver.

Para obter mais informações sobre bloqueios de rotação, consulte Técnicas de Sincronização para drivers de Framework-Based.

Exemplos

O exemplo de código a seguir inicializa um WDF_OBJECT_ATTRIBUTES, especifica que o objeto pai do bloqueio de rotação será um objeto de dispositivo e chama WdfSpinLockCreate.

WDF_OBJECT_ATTRIBUTES attributes;
WDFSPINLOCK lockHandle;

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

Requisitos

Requisito Valor
da Plataforma de Destino Universal
versão mínima do KMDF 1.0
versão mínima do UMDF 2.0
cabeçalho wdfsync.h (inclua Wdf.h)
biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
regras de conformidade de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ParentObjectCheckLock(kmdf), WdfSpinlock(kmdf)

Consulte também

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfSpinLockAcquire

WdfSpinLockRelease

da regra WdfSpinlock (KMDF)

da regra WdfSpinLockRelease (KMDF)