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 routine KeSrcuReadLock entra nella sezione RCU critical di lettura di una partizione SRCU (Sleepable Read-Copy-Update) specificata.
Sintassi
VOID KeSrcuReadLock(
[in] PKE_SRCU Rcu,
[out] PKE_SRCU_LOCK Lock
);
Parametri
[in] Rcu
Puntatore all'istanza SRCU allocata in precedenza da KeSrcuAllocate.
[out] Lock
Puntatore a una struttura KE_SRCU_LOCK che riceve il contesto di blocco. Questo contesto deve essere passato a KeSrcuReadUnlock quando si esce dalla sezione critica.
Valore restituito
None
Osservazioni:
KeSrcuReadLock entra in una sezione critica in lettura, consentendo al chiamante di accedere in modo sicuro ai dati protetti dalla partizione SRCU. Più lettori possono contenere blocchi di lettura contemporaneamente, ma gli aggiornamenti devono attendere l'uscita di tutti i lettori.
A differenza del normale RCU, i lettori possono dormire tenendo premuto il blocco di lettura. I blocchi di lettura possono essere annidati all'interno dello stesso thread. Il thread può eseguire la migrazione a processori diversi mantenendo il blocco.
Associare sempre KeSrcuReadUnlock nello stesso thread. Il parametro Lock riceve il contesto necessario per lo sblocco. Più lettori possono accedere simultaneamente ai dati protetti. I writer devono usare KeSrcuSynchronize per attendere il completamento del lettore.
Se il thread esegue la migrazione a un processore diverso tra blocco e sblocco, l'operazione di sblocco userà un interrupt tra processori (IPI) per completare lo sblocco nel processore originale.
Requisiti
| Requisito | Value |
|---|---|
| Piattaforma di destinazione | Universale |
| Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
| Library | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | Qualsiasi livello |