Freigeben über


WdfWaitLockCreate-Funktion (wdfsync.h)

[Gilt für KMDF und UMDF]

Die WdfWaitLockCreate-Methode erstellt ein Framework-Wait-Lock-Objekt.

Syntax

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

Parameter

[in, optional] LockAttributes

Ein Zeiger auf eine vom Aufrufer zugewiesene WDF_OBJECT_ATTRIBUTES Struktur, die Attribute für das Wait-Lock-Objekt angibt. Dieser Parameter ist optional und kann WDF_NO_OBJECT_ATTRIBUTES werden.

[out] Lock

Ein Zeiger auf eine Position, die ein Handle für ein neues Framework-Wait-Lock-Objekt empfängt.

Rückgabewert

WdfWaitLockCreate gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist.

Eine Liste mit anderen Rückgabewerten, die von der WdfWaitLockCreate Methode möglicherweise zurückgegeben werden, finden Sie unter Framework Object Creation Errors.

Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.

Bemerkungen

Die WdfWaitLockCreate-Methode erstellt ein Framework-Wait-Lock-Objekt. Nach dem Erstellen eines Wait-Lock-Objekts kann ein Treiber WdfWaitLockAcquire- aufrufen, um die Sperre abzurufen, und WdfWaitLockRelease, um die Sperre freizugeben.

Standardmäßig ist das übergeordnete Objekt des neuen Wait-Lock-Objekts das Frameworktreiberobjekt, das vom WdfDriverCreate-Methode erstellt wurde. Sie können das ParentObject Element der WDF_OBJECT_ATTRIBUTES Struktur verwenden, um ein anderes übergeordnetes Element anzugeben. Das Framework löscht das Wait-Lock-Objekt, wenn es das übergeordnete Objekt löscht. Wenn ihr Treiber das übergeordnete Standardobjekt nicht ändert, sollte der Treiber das Warteschlossobjekt löschen, wenn es mit der Verwendung des Objekts abgeschlossen ist; andernfalls bleibt das Objekt erhalten, bis der E/A-Manager den Treiber entlädt.

Weitere Informationen zu Wartesperren finden Sie unter Synchronisierungstechniken für Framework-Based Treiber.

Beispiele

Im folgenden Codebeispiel wird ein WDF_OBJECT_ATTRIBUTESinitialisiert. Es wird angegeben, dass das übergeordnete Objekt der Wartesperre ein Geräteobjekt ist und WdfWaitLockCreateaufruft.

WDF_OBJECT_ATTRIBUTES attributes;
WDFWAITLOCK lockHandle;

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

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Header- wdfsync.h (include Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL- <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ParentObjectCheckLock(kmdf)

Siehe auch

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfWaitLockAcquire-

WdfWaitLockRelease