Функция NdisReleaseRWLock (ndis.h)

Функция NdisReleaseRWLock освобождает блокировку чтения и записи, которую вызывающий объект использует для получения доступа к ресурсам, которые совместно используются потоками драйвера.

Синтаксис

void NdisReleaseRWLock(
  [in] PNDIS_RW_LOCK_EX Lock,
  [in] PLOCK_STATE_EX   LockState
);

Параметры

[in] Lock

Указатель на непрозрачную переменную NDIS_RW_LOCK_EX , представляющую блокировку. Вызывающий объект может использовать эту блокировку для получения доступа на запись или чтение к ресурсам, которые совместно используются потоками, не относящиеся к драйверу ISR.

[in] LockState

Указатель на непрозрачную переменную LOCK_STATE_EX , которая отслеживает состояние блокировки. Эта переменная существует в интервале между временем, когда вызывающий объект получает и снимает блокировку. Вызывающий объект должен использовать другую переменную типа LOCK_STATE_EX для каждой попытки получить блокировку из одного потока драйвера, отличного от ISR.

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

None

Remarks

Драйверы NDIS вызывают функцию NdisReleaseRWLock , чтобы освободить блокировку чтения и записи, которая была ранее получена путем вызова
NdisAcquireRWLockRead илиФункция NdisAcquireRWLockWRite.

Драйвер должен получить блокировку чтения и записи, прежде чем драйвер сможет вызвать NdisReleaseRWLock. Для каждого вызова для получения блокировки требуется обратный вызов NdisReleaseRWLock.

Приобретение NDIS_RW_LOCK_EX соответствует текущему процессору. Драйверы должны вызывать NdisReleaseRWLock на том же процессоре, который сделал соответствующий вызов NdisAcquireRWLockRead или NdisAcquireRWLockWrite.

NdisReleaseRWLock восстанавливает исходный код IRQL, который использовался вызывающим элементом до получения блокировки.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.20 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL DISPATCH_LEVEL

См. также раздел

LOCK_STATE_EX

NDIS_RW_LOCK_EX

NdisAcquireRWLockRead

NdisAcquireRWLockWrite