Compartir a través de


Función KeRcuReadUnlock (wdm.h)

La función KeRcuReadUnlock sale de una sección crítica de lectura de RCU (read-Copy-Update) en el dominio de RCU predeterminado que se especificó anteriormente con KeRcuReadLock.

Syntax

VOID KeRcuReadUnlock();

Valor devuelto

Ninguno

Observaciones

Esta función desancla el subproceso de llamada de su procesador, restaura el IRQL original si es necesario y realiza los informes de períodos de gracia necesarios para avanzar la sincronización de RCU.

Se debe llamar a KeRcuReadUnlock para salir de cada sección crítica del lado de lectura de RCU especificada con KeRcuReadLock. Las llamadas deben anidarse correctamente (orden LIFO) al usar secciones críticas del lado de lectura de RCU anidadas.

Después de llamar a KeRcuReadUnlock:

  • El subproceso de llamada ya no está protegido de los períodos de gracia de RCU.
  • Las estructuras de datos protegidas con RCU a las que se accede durante la sección crítica pueden ser aptas para la recuperación.
  • El subproceso no debe seguir accediendo a datos protegidos por RCU mediante punteros obtenidos durante la sección crítica.
  • El subproceso ya no está anclado a su procesador y se puede programar en diferentes procesadores.

Se puede llamar a esta función desde cualquier IRQL. La función controla automáticamente la restauración de IRQL; es decir, si el IRQL original antes del KeRcuReadLock correspondiente estaba por debajo de DISPATCH_LEVEL, se restaurará a ese nivel.

Esta función usa el dominio RCU predeterminado, lo que lo hace adecuado para casos de uso de RCU simples. Para escenarios más complejos que requieren dominios de sincronización personalizados, use KeSrcuReadUnlock con una partición SRCU explícita.

Requisitos

Requirement Importancia
Cliente mínimo compatible Windows 11, versión 24H2
Servidor mínimo admitido Windows Server 2025
de la plataforma de destino de Universal
Header wdm.h (incluya Wdm.h)
Library NtosKrnl.lib
irQL <= DISPATCH_LEVEL

Consulte también

KeRcuReadLock

KeRcuSynchronize

KeSrcuReadLock

KeSrcuReadUnlock

KeSrcuSynchronize