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
- FALSE
- 0xff
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.
RxFinalizeConnection falhará se arquivos ou notificações de alteração estiverem abertos.
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 |
---|---|
|
O membro Flags da estrutura RX_CONTEXT indica que o IRP foi cancelado. |
|
A conexão ainda está em uso. |
|
O arquivo estava aberto, portanto, a conexão remota não deve ser excluída. |
|
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 |