Поделиться через


Функция KeSrcuReadUnlock (wdm.h)

Подпрограмма KeSrcuReadUnlock завершает критически важный раздел RCU на стороне чтения указанного разделаCopy-Update (SRCU).

Синтаксис

VOID KeSrcuReadUnlock(
  [in] PKE_SRCU      Rcu,
  [in] PKE_SRCU_LOCK Lock
);

Параметры

[in] Rcu

Указатель на экземпляр SRCU, который использовался в соответствующем вызове KeSrcuReadLock .

[in] Lock

Указатель на структуру KE_SRCU_LOCK , заполненную соответствующим вызовом KeSrcuReadLock .

Возвращаемое значение

None

Замечания

KeSrcuReadUnlock завершает критически важный раздел на стороне чтения, который был введен с помощью KeSrcuReadLock. Эта функция должна вызываться в том же потоке, который вызвал соответствующую функцию KeSrcuReadLock.

Эта функция может вызываться в любой IRQL, когда поток по-прежнему находится на том же процессоре. Если поток перенесен на другой процессор, максимальный эффективный IRQL DISPATCH_LEVEL из-за требований к прерыванию межпроцессорных прерываний (IPI).

Эту функцию можно вызвать с отключенными прерываниями.

Если вызывающий поток перенесен на другой процессор после вызова KeSrcuReadLock, эта функция будет:

  1. Обнаружение изменения процессора.
  2. Отправьте межпроцессорное прерывание (IPI) исходному процессору.
  3. Выполните операцию разблокировки удаленно на исходном процессоре.

После этого вызова защищенные данные больше не должны быть доступны.

Требования

Требование Ценность
целевая платформа Всеобщий
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень (см. примечания)

См. также

KE_SRCU_LOCK

KeSrcuAllocate

KeSrcuFree

KeSrcuReadLock

KeSrcuSynchronize