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