Compartilhar via


Função RxDereference (rxprocs.h)

RxDereference decrementa o membro NodeReferenceCount de uma estrutura por um para várias estruturas de dados contadas de referência usadas pelo RDBSS.

Sintaxe

void RxDereference(
  [in, out] IN OUT PVOID          Instance,
  [in]      IN LOCK_HOLDING_STATE LockHoldingState
);

Parâmetros

[in, out] Instance

Um ponteiro para a estrutura de dados contada por referência a ser desreferenciada.

[in] LockHoldingState

O modo no qual o bloqueio apropriado para essa estrutura de dados é mantido. Esse parâmetro pode ser um dos seguintes valores para a enumeração LOCK_HOLDING_STATE:

LHS_LockNotHeld

Um bloqueio não está mantido no momento.

LHS_SharedLockHeld

Um bloqueio compartilhado está sendo mantido.

LHS_ExclusiveLockHeld

Um bloqueio exclusivo está sendo mantido.

Retornar valor

Nenhum

Comentários

RxDereference pode ser usado para desreferenciar (decremento por um) o membro NodeReferenceCount nas seguintes estruturas de dados usadas pelo RDBSS:

SRV_CALL

NET_ROOT

V_NET_ROOT

SRV_OPEN

FOBX

Se RxDereference for chamado com qualquer outro tipo de estrutura de dados RDBSS, a rotina fará com que o sistema assert em builds verificados.

Se o membro NodeReferenceCount for menor que 0 após ser desrefenced (decremented) por RxDereference, rxDereference fará com que o sistema assert em builds verificados.

Se o membro NodeReferenceCount diminuir para 1 e o parâmetro LockHoldingState for LHS_ExclusiveLockHeld, a instância da estrutura de dados poderá ser finalizada imediatamente. Caso contrário, a instância da estrutura de dados será marcada para ser scavenged e finalizada posteriormente.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho rxprocs.h (include Rxprocs.h)
IRQL <= APC_LEVEL

Confira também

RxReference

A estrutura FOBX

A estrutura NET_ROOT

A estrutura SRV_CALL

A estrutura SRV_OPEN

A estrutura V_NET_ROOT