Compartilhar via


Função RxDereference (rxprocs.h)

RxDereference decrementa o NodeReferenceCount membro de uma estrutura por uma 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 é mantido no momento.

LHS_SharedLockHeld

Um bloqueio compartilhado está sendo mantido.

LHS_ExclusiveLockHeld

Um bloqueio exclusivo está sendo mantido.

Valor de retorno

Nenhum

Observações

RxDereference pode ser usado para desreferenciar (decrementar 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 asserte em builds verificados.

Se o membro NodeReferenceCount for menor que 0 depois de ser desreferenciado (decremented) por RxDereference, RxDereference fará com que o sistema declare em builds verificados.

Se o NodeReferenceCount decrementos de membro para 1 e o parâmetro LockHoldingState foi 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
da Plataforma de Destino Área de trabalho
cabeçalho rxprocs.h (include Rxprocs.h)
IRQL <= APC_LEVEL

Consulte também

RxReference

a estrutura FOBX

a estrutura NET_ROOT

a estrutura SRV_CALL

a estrutura SRV_OPEN

a estrutura V_NET_ROOT