Função RxFinalizeConnection (rxprocs.h)

RxFinalizeConnection exclui uma conexão com um compartilhamento. Todos os arquivos abertos na conexão são fechados dependendo do nível de força especificado. O minidiretório de rede pode optar por manter a conexão de transporte aberta por motivos de desempenho, a menos que alguma opção seja especificada para forçar o fechamento da conexão.

Sintaxe

NTSTATUS RxFinalizeConnection(
  IN OUT PNET_ROOT   NetRoot,
  IN OUT PV_NET_ROOT VNetRoot,
  IN LOGICAL         ForceFilesClosed
);

Parâmetros

NetRoot

[in, out] Um ponteiro para a estrutura NET_ROOT que está sendo finalizada.

VNetRoot

Um ponteiro para a estrutura V_NET_ROOT que está sendo finalizada.

ForceFilesClosed

O sinalizador que controla o comportamento da rotina RxFinalizeConnection . O sinalizador pode ser um dos seguintes valores:

VERDADE

RxFinalizeConnection é bem-sucedida, independentemente de arquivos órfãos e solicitações IRP_MN_NOTIFY_CHANGE_DIRECTORY estiverem abertas. A opção força esses arquivos órfãos fechados.

FALSE

RxFinalizeConnection falhará se arquivos ou notificações de alteração estiverem abertos.

0xff

RxFinalizeConnection remove a referência extra na estrutura V_NET_ROOT devido à solicitação de adição de conexão, mas, caso contrário, agirá como FALSE. RxFinalizeConnection falhará se arquivos ou notificações de alteração estiverem abertos.

Retornar valor

RxFinalizeConnection retorna STATUS_SUCCESS com êxito ou um dos seguintes códigos de erro em caso de falha:

Código de retorno Descrição
STATUS_CANCELLED
O membro Flags da estrutura RX_CONTEXT indica que o IRP foi cancelado.
STATUS_CONNECTION_IN_USE
A conexão ainda está em uso.
STATUS_FILES_OPEN
O arquivo estava aberto, portanto, a conexão remota não deve ser excluída.
STATUS_LOCK_NOT_GRANTED
Um bloqueio exclusivo no associado

Comentários

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.

RxFinalizeConnection cancela todas as solicitações pendentes para uma determinada estrutura de V_NET_ROOT. Essas estruturas V_NET_ROOT são criadas e excluídas independentemente dos arquivos abertos e manipulados nelas. Portanto, é imperativo que, quando uma operação de exclusão for tentada, todas as solicitações pendentes sejam canceladas.

Requisitos

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

Confira também

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

A estrutura NET_ROOT

A estrutura V_NET_ROOT