Поделиться через


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

См. также

RxReference

структура FOBX

структура NET_ROOT

структура SRV_CALL

структура SRV_OPEN

структура V_NET_ROOT