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) |