Функция RxDereference (rxprocs.h)
RxDereference уменьшает элемент NodeReferenceCount структуры по одному для нескольких ссылочных структур данных, используемых RDBSS.
Синтаксис
void RxDereference(
[in, out] IN OUT PVOID Instance,
[in] IN LOCK_HOLDING_STATE LockHoldingState
);
Параметры
[in, out] Instance
Указатель на структуру данных с ссылочным подсчетом, который следует разослать.
[in] LockHoldingState
Режим, в котором хранится соответствующая блокировка для этой структуры данных. Этот параметр может быть одним из следующих значений перечисления LOCK_HOLDING_STATE:
LHS_LockNotHeld
Блокировка в настоящее время не проводится.
LHS_SharedLockHeld
Хранится общая блокировка.
LHS_ExclusiveLockHeld
Проводится монопольная блокировка.
Возвращаемое значение
Никакой
Замечания
RxDereference можно использовать для разбиения (декремента по одному) члена NodeReferenceCount на следующих структурах данных, используемых RDBSS:
SRV_CALL
NET_ROOT
V_NET_ROOT
SRV_OPEN
FOBX
Если RxDereference вызывается с любой другой структурой данных RDBSS, подпрограмма вызывает проверку системы при проверяемых сборках.
Если элемент NodeReferenceCount меньше 0 после деконференции (декрементирован) RxDereference, то RxDereference приводит к тому, что система будет УТВЕРЖДАТЬ на проверенных сборках.
Если элемент NodeReferenceCount nodeReferenceCount уменьшается до 1, а параметр LockHoldingState был LHS_ExclusiveLockHeld, экземпляр структуры данных можно завершить немедленно. В противном случае экземпляр структуры данных помечен для очистки и завершения позже.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | rxprocs.h (include Rxprocs.h) |
IRQL | <= APC_LEVEL |