Функция 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
Удерживается монопольная блокировка.
Возвращаемое значение
None
Remarks
RxDereference можно использовать для разыменования (уменьшения на единицу) элемента NodeReferenceCount в следующих структурах данных, используемых RDBSS:
SRV_CALL
NET_ROOT
V_NET_ROOT
SRV_OPEN
FOBX
Если RxDereference вызывается с любым другим типом структуры данных RDBSS, подпрограмма вызывает в системе assert в проверенных сборках.
Если элемент NodeReferenceCount меньше 0 после разыменования (уменьшения) RxDereference, то RxDereference приводит к тому, что система будет использовать ASSERT в проверенных сборках.
Если элемент NodeReferenceCount уменьшается до 1, а параметр LockHoldingState был LHS_ExclusiveLockHeld, экземпляр структуры данных можно завершить немедленно. В противном случае экземпляр структуры данных помечается для очистки и завершения позже.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | rxprocs.h (включая Rxprocs.h) |
IRQL | <= APC_LEVEL |