Freigeben über


KE_SRCU_LOCK Struktur (wdm.h)

Die KE_SRCU_LOCK-Struktur stellt den Sperrkontext dar, der in SRCU (Sleepable Read-Copy-Update) read-side critical sections verwendet wird.

Syntax

typedef struct _KE_SRCU_LOCK {
  ULONG_PTR Placeholder[2];
} *PKE_SRCU_LOCK, KE_SRCU_LOCK;

Elemente

Placeholder[2]

Ein Array von zwei ULONG_PTR Werten, die als undurchsichtiger Speicher für den SRCU-Sperrkontext dienen. Der Inhalt dieses Felds ist implementierungsspezifisch und sollte nicht von Treibern aufgerufen oder geändert werden.

Bemerkungen

Diese Struktur wird von den Funktionen KeSrcuReadLock und KeRcuReadLock zurückgegeben und muss an die entsprechenden Entsperrfunktionen übergeben werden.

Diese Struktur ist für Treiber nicht transparent. Treiber sollten niemals:

  • Greifen Sie direkt auf das Feld zu oder ändern Sie es Placeholder .
  • Nehmen Sie Annahmen über das interne Layout der Struktur vor.
  • Kopieren oder serialisieren Sie den Strukturinhalt.
  • Verwenden Sie die Struktur in verschiedenen SRCU-Partitionen.

Die Struktur wird in der Regel im folgenden Muster verwendet:

PSRCU_PARTITION SrcuPartition = KeSrcuAllocate();
KE_SRCU_LOCK LockContext;

// Enter read-side critical section
LockContext = KeSrcuReadLock(SrcuPartition);

// Access RCU-protected data safely
// ...

// Exit read-side critical section
KeSrcuReadUnlock(SrcuPartition, LockContext);

Der von der Lesesperre-Funktion zurückgegebene Sperrkontext muss an die entsprechende Entsperrfunktion übergeben werden, um den kritischen Abschnitt ordnungsgemäß zu verlassen. Die Verwendung eines falschen oder nicht initialisierten Sperrkontexts kann zu Systeminstabilität führen.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows 11, Version 24H2
Mindestanforderungen für unterstützte Server Windows Server 2025
Header wdm.h (include Wdm.h)

Siehe auch

KeSrcuReadLock

KeSrcuReadUnlock

KeRcuReadLock

KeRcuReadUnlock

KeSrcuAllocate

KeSrcuSynchronize