Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La funzione KeRcuReadUnlock esce da una sezione RCU (Read-Copy-Update) read-side critical nel dominio RCU predefinito immesso in precedenza con KeRcuReadLock.
Sintassi
VOID KeRcuReadUnlock();
Valore restituito
None
Osservazioni:
Questa funzione rimuove il thread chiamante dal processore, ripristina l'IRQL originale, se necessario, ed esegue qualsiasi periodo di tolleranza necessario per segnalare l'avanzamento della sincronizzazione RCU.
KeRcuReadUnlock deve essere chiamato per uscire da ogni sezione critica di lettura RCU immessa con KeRcuReadLock. Le chiamate devono essere annidate correttamente (ordine LIFO) quando si usano sezioni critiche in lettura RCU annidate.
Dopo aver chiamato KeRcuReadUnlock:
- Il thread chiamante non è più protetto dai periodi di tolleranza RCU.
- Le strutture di dati protette da RCU a cui si accede durante la sezione critica possono diventare idonee per il recupero.
- Il thread non deve continuare ad accedere ai dati protetti da RCU usando puntatori ottenuti durante la sezione critica.
- Il thread non viene più aggiunto al processore e può essere pianificato in processori diversi.
Questa funzione può essere chiamata da qualsiasi IRQL. La funzione gestisce automaticamente il ripristino IRQL; ovvero, se il runtime di integrazione originale prima dell'oggetto KeRcuReadLock corrispondente era inferiore DISPATCH_LEVEL, verrà ripristinato in tale livello.
Questa funzione usa il dominio RCU predefinito, rendendolo adatto per semplici casi d'uso di RCU. Per scenari più complessi che richiedono domini di sincronizzazione personalizzati, usare KeSrcuReadUnlock con una partizione SRCU esplicita.
Requisiti
| Requisito | Value |
|---|---|
| Client minimo supportato | Windows 11, versione 24H2 |
| Server minimo supportato | Windows Server 2025 |
| Piattaforma di destinazione | Universale |
| Header | wdm.h (include Wdm.h) |
| Library | NtosKrnl.lib |
| IRQL | <= DISPATCH_LEVEL |