Condividi tramite


Funzione WdfSpinLockCreate (wdfsync.h)

[Si applica a KMDF e UMDF]

Il metodo WdfSpinLockCreate crea un oggetto spin-lock del framework.

Sintassi

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

Parametri

[in, optional] SpinLockAttributes

Puntatore a una struttura WDF_OBJECT_ATTRIBUTES allocata dal chiamante che specifica gli attributi per l'oggetto spin-lock. Questo parametro è facoltativo e può essere WDF_NO_OBJECT_ATTRIBUTES.

[out] SpinLock

Puntatore a una posizione che riceve un handle per un nuovo oggetto spin-lock del framework.

Valore restituito

WdfSpinLockCreate restituisce STATUS_SUCCESS se l'operazione ha esito positivo.

Per un elenco di altri valori restituiti dal metodo WdfSpinLockCreate, vedere Framework Object Creation Errors.

Questo metodo potrebbe anche restituire altri valori NTSTATUS .

Osservazioni

Il metodo WdfSpinLockCreate crea un oggetto spin-lock del framework. Dopo aver creato un oggetto spin-lock, un driver può chiamare WdfSpinLockAcquire per acquisire il blocco e WdfSpinLockRelease per rilasciare il blocco.

Per impostazione predefinita, il nuovo oggetto padre dell'oggetto spin-lock è l'oggetto driver del framework creato dal metodo WdfDriverCreate. È possibile utilizzare il membro parentObject della struttura WDF_OBJECT_ATTRIBUTES per specificare un elemento padre diverso. Il framework elimina l'oggetto spin-lock quando elimina l'oggetto padre. Se il driver non modifica l'elemento padre predefinito, il driver deve eliminare l'oggetto spin-lock al termine dell'utilizzo dell'oggetto ; in caso contrario, l'oggetto rimarrà fino a quando il gestore di I/O scarica il driver.

Per altre informazioni sui blocchi di selezione, vedere Tecniche di sincronizzazione per i driver Framework-Based.

Esempi

L'esempio di codice seguente inizializza un WDF_OBJECT_ATTRIBUTES, specifica che l'oggetto padre del blocco di selezione sarà un oggetto dispositivo e chiama WdfSpinLockCreate.

WDF_OBJECT_ATTRIBUTES attributes;
WDFSPINLOCK lockHandle;

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

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
versione minima di KMDF 1.0
versione minima di UMDF 2.0
intestazione wdfsync.h (include Wdf.h)
libreria Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
regole di conformità DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ParentObjectCheckLock(kmdf), WdfSpinlock(kmdf)

Vedere anche

WDF_OBJECT_ATTRIBUTES

WdfDriverCreare

WdfSpinLockAcquire

WdfSpinLockRelease

regola WdfSpinlock (KMDF)

regola WdfSpinLockRelease (KMDF)