Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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) |