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

Siehe auch

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfSpinLockAcquire-

WdfSpinLockRelease

WdfSpinlock-Regel (KMDF)

WdfSpinLockRelease-Regel (KMDF)