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 che il metodo WdfSpinLockCreate potrebbe restituire, vedere Errori di creazione di oggetti framework.

Questo metodo potrebbe anche restituire altri valori NTSTATUS.

Commenti

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, l'elemento padre del nuovo 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à finché il gestore di I/O non scarica il driver.

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

Esempio

Nell'esempio di codice seguente viene inizializzata una WDF_OBJECT_ATTRIBUTES, viene specificato 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
                           );

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Versione UMDF minima 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)

Vedi anche

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfSpinLockAcquire

WdfSpinLockRelease

Regola WdfSpinlock (KMDF)

Regola WdfSpinLockRelease (KMDF)