Funzione WdfWaitLockCreate (wdfsync.h)

[Si applica a KMDF e UMDF]

Il metodo WdfWaitLockCreate crea un oggetto wait-lock framework.

Sintassi

NTSTATUS WdfWaitLockCreate(
  [in, optional] PWDF_OBJECT_ATTRIBUTES LockAttributes,
  [out]          WDFWAITLOCK            *Lock
);

Parametri

[in, optional] LockAttributes

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

[out] Lock

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

Valore restituito

WdfWaitLockCreate restituisce STATUS_SUCCESS se l'operazione ha esito positivo.

Per un elenco di altri valori restituiti che il metodo WdfWaitLockCreate potrebbe restituire, vedere Errori di creazione di oggetti framework.

Questo metodo potrebbe anche restituire altri valori NTSTATUS.

Commenti

Il metodo WdfWaitLockCreate crea un oggetto wait-lock framework. Dopo aver creato un oggetto wait-lock, un driver può chiamare WdfWaitLockAcquire per acquisire il blocco e WdfWaitLockRelease per rilasciare il blocco.

Per impostazione predefinita, l'elemento padre del nuovo oggetto wait-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 wait-lock quando elimina l'oggetto padre. Se il driver non modifica l'elemento padre predefinito, il driver deve eliminare l'oggetto wait-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 attesa, vedere Tecniche di sincronizzazione per i driver Framework-Based.

Esempio

Nell'esempio di codice seguente viene inizializzata una WDF_OBJECT_ATTRIBUTES, viene specificato che l'oggetto padre del blocco di attesa sarà un oggetto dispositivo e chiama WdfWaitLockCreate.

WDF_OBJECT_ATTRIBUTES attributes;
WDFWAITLOCK lockHandle;

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

Requisiti

   
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)

Vedi anche

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfWaitLockAcquire

WdfWaitLockRelease