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 KeSrcuAllocate-Routine weist eine standbyfähige Read-Copy-Update (SRCU)-Partition für Synchronisierungszwecke zu und initialisiert sie.
Syntax
PKE_SRCU KeSrcuAllocate(
[in] ULONG Tag
);
Die Parameter
[in] Tag
Ein Wert mit vier Zeichen, der zum Identifizieren dieser SRCU-Instanz verwendet wird.
Rückgabewert
KeSrcuAllocate gibt einen Zeiger auf die zugeordnete SRCU-Instanz bei Erfolg oder NULL zurück, wenn die Zuordnung fehlschlägt.
Bemerkungen
KeSrcuAllocate erstellt eine neue SRCU-Synchronisierungsdomäne, die es mehreren Lesern ermöglicht, gleichzeitig auf freigegebene Daten zuzugreifen und gleichzeitig sichere Updates sicherzustellen. SRCU unterscheidet sich von der regulären RCU darin, dass Leser beim Halten der Lesesperre schlafen können.
Die von dieser Funktion zurückgegebene SRCU-Partition muss mit KeSrcuFree freigegeben werden, wenn sie nicht mehr benötigt wird.
Jede SRCU-Partition ist unabhängig und behält ihre eigenen Karenzzeiten bei. SRCU wurde für Szenarien entwickelt, in denen Leser möglicherweise in den Ruhezustand wechseln oder Blockierungsvorgänge ausführen müssen.
Der Tag-Parameter sollte eindeutig sein, um die Instanz beim Debuggen zu identifizieren.
Typisches Verwendungsmuster
- Rufen Sie KeSrcuAllocate auf, um eine SRCU-Partition zu erstellen.
- Verwenden Sie KeSrcuReadLock und KeSrcuReadUnlock für die Lesesynchronisierung.
- Verwenden Sie KeSrcuSynchronize , um vor Updates auf den Abschluss des Readers zu warten.
- Rufen Sie KeSrcuFree auf, um sie zu bereinigen, wenn Sie fertig sind.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform | Universal |
| Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
| Library | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | < DISPATCH_LEVEL |