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