NdisReleaseRWLock-Funktion (ndis.h)

Die NdisReleaseRWLock-Funktion gibt eine Lese-/Schreibsperre frei, die der Aufrufer verwendet, um Zugriff auf Ressourcen zu erhalten, die von 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 von 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, zu denen der Aufrufer die Sperre abruft und freigibt. Der Aufrufer muss eine andere Variable vom Typ LOCK_STATE_EX für jeden Versuch verwenden, den er unternimmt, um die Sperre aus demselben Nicht-ISR-Treiberthread abzurufen.

Rückgabewert

Keine

Bemerkungen

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

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

Der Erwerb eines NDIS_RW_LOCK_EX ist mit dem aktuellen Prozessor verbunden. Treiber müssen NdisReleaseRWLock auf demselben Prozessor aufrufen, der den entsprechenden Aufruf von NdisAcquireRWLockRead oder NdisAcquireRWLockWrite ausgeführt hat.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.20 und höher.
Zielplattform Universell
Header ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL DISPATCH_LEVEL

Weitere Informationen

LOCK_STATE_EX

NDIS_RW_LOCK_EX

NdisAcquireRWLockRead

NdisAcquireRWLockWrite