Freigeben über


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)

Weitere Informationen

WDF_OBJECT_ATTRIBUTES

WdfDriverErstellen

WdfSpinLockAcquire

WdfSpinLockRelease

WdfSpinlock-Regel (KMDF)

WdfSpinLockRelease-Regel (KMDF)