Функция 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

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

RxReference

Структура FOBX

Структура NET_ROOT

Структура SRV_CALL

Структура SRV_OPEN

Структура V_NET_ROOT