WdfWaitLockCreate-Funktion (wdfsync.h)

[Gilt für KMDF und UMDF]

Die WdfWaitLockCreate-Methode erstellt ein Framework-Wartesperre-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 Wartesperrobjekt angibt. Dieser Parameter ist optional und kann WDF_NO_OBJECT_ATTRIBUTES werden.

[out] Lock

Ein Zeiger auf eine Position, die ein Handle auf ein neues Framework-Wartesperreobjekt 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 Fehler beim Erstellen von Frameworkobjekten.

Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.

Hinweise

Die WdfWaitLockCreate-Methode erstellt ein Framework-Wartesperre-Objekt. Nach dem Erstellen eines Wartesperrobjekts kann ein Treiber WdfWaitLockAcquire aufrufen, um die Sperre abzurufen, und WdfWaitLockRelease , um die Sperre zu lösen.

Standardmäßig ist das übergeordnete Element des neuen Wait-Lock-Objekts das Frameworktreiberobjekt, das von der 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 Wartesperrobjekt, wenn es das übergeordnete Objekt löscht. Wenn Ihr Treiber das übergeordnete Standardobjekt nicht ändert, sollte der Treiber das Wartesperrobjekt löschen, wenn er das Objekt verwendet hat. Andernfalls verbleibt das Objekt, bis der E/A-Manager Den Treiber entladen hat.

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

Beispiele

Das folgende Codebeispiel initialisiert eine WDF_OBJECT_ATTRIBUTES, gibt an, dass das übergeordnete Objekt der Wartesperre ein Geräteobjekt ist, und ruft WdfWaitLockCreate auf.

WDF_OBJECT_ATTRIBUTES attributes;
WDFWAITLOCK lockHandle;

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

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfsync.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ParentObjectCheckLock(kmdf)

Weitere Informationen

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfWaitLockAcquire

WdfWaitLockRelease