Функция NdisReleaseRWLock (ndis.h)
Функция NdisReleaseRW Lock освобождает блокировку чтения и записи, которую вызывающий объект использует для получения доступа к ресурсам, общим для потоков драйверов.
Синтаксис
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.
Возвращаемое значение
Никакой
Замечания
Драйверы NDIS вызывают функцию NdisReleaseRWLock, чтобы освободить блокировку чтения и записи, полученную ранее путем вызова
NdisAcquireRWLockRead или
функции NdisAcquireRWLockWrite.
Драйвер должен получить блокировку чтения и записи, прежде чем драйвер может вызвать NdisReleaseRWLock. Каждому вызову для получения блокировки требуется обратный вызов NdisReleaseRWLock.
Приобретение NDIS_RW_LOCK_EX соответствует текущему процессору. Драйверы должны вызывать NdisReleaseRWLock на том же процессоре, который сделал соответствующий вызов NdisAcquireRWLockRead или NdisAcquireRWLockWrite.
NdisReleaseRWLock восстанавливает исходный IRQL, который использовался вызывающим методом до получения блокировки.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается в NDIS 6.20 и более поздних версиях. |
целевая платформа | Всеобщий |
заголовка | ndis.h (include Ndis.h) |
библиотеки | Ndis.lib |
IRQL | DISPATCH_LEVEL |