Condividi tramite


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 dal metodo WdfWaitLockCreate, vedere Framework Object Creation Errors.

Questo metodo potrebbe anche restituire altri valori NTSTATUS .

Osservazioni

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à fino a quando il gestore di I/O scarica il driver.

Per altre informazioni sui blocchi di attesa, vedere Synchronization Techniques for Framework-Based Drivers.

Esempi

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

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)

Vedere anche

WDF_OBJECT_ATTRIBUTES

WdfDriverCreare

WdfWaitLockAcquire

WdfWaitLockRelease