Função RxFinalizeVNetRoot (fcb.h)

RxFinalizeVNetRoot finaliza a estrutura de V_NET_ROOT fornecida. O chamador deve ter um bloqueio exclusivo na tabela netname associada ao objeto do dispositivo.

Sintaxe

BOOLEAN RxFinalizeVNetRoot(
  [out] OUT PV_NET_ROOT ThisVNetRoot,
  [in]  IN BOOLEAN      RecursiveFinalize,
  [in]  IN BOOLEAN      ForceFinalize
);

Parâmetros

[out] ThisVNetRoot

Um ponteiro para a estrutura V_NET_ROOT a ser finalizada.

[in] RecursiveFinalize

O valor que indica se a finalização deve ser feita recursivamente. Esse parâmetro no não é usado no momento.

[in] ForceFinalize

O valor que indica se a finalização deve ser forçada, independentemente da contagem de referência.

Se ForceFinalize for FALSE, o membro NodeReferenceCount da estrutura V_NET_ROOT apontada por ThisVNetRoot deverá ser 1 para que o V_NET_ROOT seja finalizado.

Retornar valor

RxFinalizeVNetRoot retornará TRUE em caso de êxito ou FALSO se a finalização não ocorrer:

Comentários

A rotina RxFinalizeVNetRoot normalmente não é chamada por drivers de minidiretório de rede diretamente. O RDBSS chama essa rotina internamente quando a contagem de referência no V_NET_ROOT é decrementada para 1.

RxFinalizeVNetRoot também será chamado pela rotina RxFinalizeConnection se o parâmetro Level para RxFinalizeConnection estiver definido como TRUE. RxFinalizeConnection normalmente é chamado por um driver de minidiretório de rede em resposta ao recebimento de uma solicitação IOCTL personalizada do modo de usuário. Por exemplo, um usuário pode executar na linha de comando um "NET USE x: /d" para excluir um compartilhamento. Essa solicitação seria mapeada por meio da DLL do provedor de rede fornecida pelo minidiretório de rede para uma solicitação IOCTL personalizada enviada ao driver de kernel de minidiretório de rede que chamaria a rotina RxFinalizeConnection para excluir a conexão e quaisquer estruturas de V_NET_ROOT associadas.

RxFinalizeVNetRoot também é chamado pela rotina RxForceFinalizeAllVNetRoots para finalizar cada V_NET_ROOT associado a uma estrutura NET_ROOT.

Antes de chamar RxFinalizeVNetRoot, um bloqueio na tabela netname associada ao objeto de dispositivo deve ser adquirido no modo exclusivo.

Se o membro UpperFinalization do V_NET_ROOT for 0, RxFinalizeVNetRoot iterará por todas as FCBs que pertencem à NET_ROOT associadas a esse V_NET_ROOT e órfãs todas as estruturas de SRV_OPEN associadas ao V_NET_ROOT.

RxFinalizeVNetRoot chamará a rotina MRxFinalizeVNetRoot fornecida pelo minidiretório de rede para finalizar o V_NET_ROOT antes que a memória da estrutura V_NET_ROOT seja liberada.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho fcb.h (inclua Mrxfcb.h, Fcb.h)
IRQL <= APC_LEVEL

Confira também

MRxFinalizeVNetRoot

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

A estrutura V_NET_ROOT