WdfSpinLockCreate-Funktion (wdfsync.h)
[Gilt für KMDF und UMDF]
Die WdfSpinLockCreate-Methode erstellt ein Framework-Spin-Lock-Objekt.
Syntax
NTSTATUS WdfSpinLockCreate(
[in, optional] PWDF_OBJECT_ATTRIBUTES SpinLockAttributes,
[out] WDFSPINLOCK *SpinLock
);
Parameter
[in, optional] SpinLockAttributes
Ein Zeiger auf eine vom Aufrufer zugewiesene WDF_OBJECT_ATTRIBUTES Struktur, die Attribute für das Spin-Lock-Objekt angibt. Dieser Parameter ist optional und kann WDF_NO_OBJECT_ATTRIBUTES werden.
[out] SpinLock
Ein Zeiger auf eine Position, die ein Handle zu einem neuen Framework-Spin-Lock-Objekt empfängt.
Rückgabewert
WdfSpinLockCreate gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist.
Eine Liste mit anderen Rückgabewerten, die von der WdfSpinLockCreate-Methode möglicherweise zurückgegeben werden, finden Sie unter Framework Object Creation Errors.
Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.
Bemerkungen
Die WdfSpinLockCreate-Methode erstellt ein Framework-Spin-Lock-Objekt. Nach dem Erstellen eines Spin-Lock-Objekts kann ein Treiber WdfSpinLockAcquire- aufrufen, um die Sperre abzurufen, und WdfSpinLockRelease-, um die Sperre freizugeben.
Standardmäßig ist das übergeordnete Objekt des neuen Spin-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 Spin-Lock-Objekt, wenn es das übergeordnete Objekt löscht. Wenn Ihr Treiber das übergeordnete Standardobjekt nicht ändert, sollte der Treiber das Spin-Lock-Objekt löschen, wenn er die Verwendung des Objekts abgeschlossen hat. andernfalls bleibt das Objekt erhalten, bis der E/A-Manager den Treiber entlädt.
Weitere Informationen zu Drehsperren 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 Drehungssperre ein Geräteobjekt ist und WdfSpinLockCreateaufruft.
WDF_OBJECT_ATTRIBUTES attributes;
WDFSPINLOCK lockHandle;
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfSpinLockCreate(
&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), WdfSpinlock(kmdf) |