Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La rutina KeSrcuReadLock entra en la sección crítica de RCU del lado de lectura de una partición de lecturaCopy-Update (SRCU) especificada.
Syntax
VOID KeSrcuReadLock(
[in] PKE_SRCU Rcu,
[out] PKE_SRCU_LOCK Lock
);
Parámetros
[in] Rcu
Puntero a la instancia de SRCU asignada anteriormente por KeSrcuAllocate.
[out] Lock
Puntero a una estructura KE_SRCU_LOCK que recibe el contexto de bloqueo. Este contexto debe pasarse a KeSrcuReadUnlock al salir de la sección crítica.
Valor devuelto
Ninguno
Observaciones
KeSrcuReadLock entra en una sección crítica del lado de lectura, lo que permite al autor de la llamada acceder de forma segura a los datos protegidos por la partición SRCU. Varios lectores pueden contener bloqueos de lectura simultáneamente, pero las actualizaciones deben esperar a que todos los lectores salgan.
A diferencia de la RCU normal, los lectores pueden dormir mientras mantiene presionado el bloqueo de lectura. Los bloqueos de lectura se pueden anidar dentro del mismo subproceso. El subproceso puede migrar a diferentes procesadores mientras mantiene presionado el bloqueo.
Empareje siempre con KeSrcuReadUnlock en el mismo subproceso. El parámetro Lock recibe el contexto necesario para desbloquear. Varios lectores pueden acceder a los datos protegidos simultáneamente. Los escritores deben usar KeSrcuSynchronize para esperar a que finalice el lector.
Si el subproceso se migra a un procesador diferente entre bloqueo y desbloqueo, la operación de desbloqueo usará una interrupción entre procesadores (IPI) para completar el desbloqueo en el procesador original.
Requisitos
| Requirement | Importancia |
|---|---|
| de la plataforma de destino de | Universal |
| Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
| Library | NtosKrnl.lib |
| DLL de | NtosKrnl.exe |
| irQL | Cualquier nivel |