Condividi tramite


Funzione WdfWaitLockCreate (wdfsync.h)

[Si applica a KMDF e UMDF]

Il metodo WdfWaitLockCreate crea un oggetto wait-lock del 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 a 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 dell'oggetto Framework.

Questo metodo potrebbe restituire anche altri valori NTSTATUS.

Commenti

Il metodo WdfWaitLockCreate crea un oggetto wait-lock del 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, il nuovo oggetto wait-lock è l'oggetto driver del framework creato dal metodo WdfDriverCreate . È possibile usare 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'uso 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 attesa, vedere Tecniche di sincronizzazione per i driver di Framework-Based.

Esempio

L'esempio di codice seguente inizializza un WDF_OBJECT_ATTRIBUTES, specifica 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

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Versione UMDF minima 2,0
Intestazione wdfsync.h (includere 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