Freigeben über


NdisReleaseRWLock-Funktion (ndis.h)

Die NdisReleaseRWLock-Funktion gibt eine Lese-/Schreibsperre frei, die der Aufrufer verwendet, um Zugriff auf Ressourcen zu erhalten, die zwischen Treiberthreads gemeinsam genutzt werden.

Syntax

void NdisReleaseRWLock(
  [in] PNDIS_RW_LOCK_EX Lock,
  [in] PLOCK_STATE_EX   LockState
);

Parameter

[in] Lock

Ein Zeiger auf eine undurchsichtige NDIS_RW_LOCK_EX Variable, die eine Sperre darstellt. Der Aufrufer kann diese Sperre verwenden, um Schreib- oder Lesezugriff auf Ressourcen zu erhalten, die zwischen Nicht-ISR-Treiberthreads gemeinsam genutzt werden.

[in] LockState

Ein Zeiger auf eine undurchsichtige LOCK_STATE_EX Variable, die den Zustand der Sperre nachverfolgt. Diese Variable ist im Intervall zwischen den Zeiten vorhanden, die der Aufrufer abruft und die Sperre loslässt. Der Aufrufer muss eine andere Variable vom Typ LOCK_STATE_EX für jeden Versuch verwenden, den er zum Abrufen der Sperre aus demselben Nicht-ISR-Treiberthread vorgibt.

Rückgabewert

Nichts

Bemerkungen

NDIS-Treiber rufen die NdisReleaseRWLock--Funktion auf, um eine Lese-/Schreibsperre freizugeben, die zuvor durch Aufrufen der
NdisAcquireRWLockRead- oder NdisAcquireRWLockWrite-Funktion.

Ein Treiber muss eine Lese-/Schreibsperre abrufen, bevor der Treiber NdisReleaseRWLock-aufrufen kann. Jeder Aufruf zum Abrufen einer Sperre erfordert einen gegenseitigen Aufruf NdisReleaseRWLock.

Der Erwerb eines NDIS_RW_LOCK_EX wird auf den aktuellen Prozessor affinitiert. Treiber müssen NdisReleaseRWLock- auf demselben Prozessor aufrufen, der den entsprechenden Aufruf an NdisAcquireRWLockRead- oder NdisAcquireRWLockWriteausgeführt hat.

NdisReleaseRWLock stellt die ursprüngliche IRQL wieder her, die vom Aufrufer verwendet wurde, bevor die Sperre abgerufen wurde.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt in NDIS 6.20 und höher.
Zielplattform- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- DISPATCH_LEVEL

Siehe auch

LOCK_STATE_EX

NDIS_RW_LOCK_EX

NdisAcquireRWLockRead

NdisAcquireRWLockWrite