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 aufruferseitig zugeordnete 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 für ein neues 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 Fehler beim Erstellen von Frameworkobjekten.
Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.
Hinweise
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 zu lösen.
Standardmäßig ist das übergeordnete Objekt des neuen Spin-Lock-Objekts das Frameworktreiberobjekt, das von der WdfDriverCreate-Methode erstellt wurde. Sie können den ParentObject-Member 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 der Treiber das übergeordnete Standardobjekt nicht ändert, sollte der Treiber das Spin-Lock-Objekt löschen, wenn er die Verwendung des Objekts abgeschlossen hat. Andernfalls verbleibt das Objekt, bis der E/A-Manager Den Treiber entladen hat.
Weitere Informationen zu Drehsperren finden Sie unter Synchronisierungstechniken für Framework-Based Treiber.
Beispiele
Im folgenden Codebeispiel wird ein WDF_OBJECT_ATTRIBUTES initialisiert, angegeben, dass das übergeordnete Objekt der Spinsperre ein Geräteobjekt ist, und WdfSpinLockCreate wird aufgerufen.
WDF_OBJECT_ATTRIBUTES attributes;
WDFSPINLOCK lockHandle;
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfSpinLockCreate(
&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), WdfSpinlock(kmdf) |