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
[dentro, fora] 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 de RxFinalizeConnection. O sinalizador pode ser um dos seguintes valores:
- verdadeiro
- falso
- 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 os arquivos ou notificações de alteração estiverem abertos.
RxFinalizeConnection remove a referência extra na estrutura de V_NET_ROOT devido à solicitação de adição de conexão, mas, caso contrário, agir como false. rxFinalizeConnection falhar se os arquivos ou notificações de alteração estiverem abertos.
Valor de retorno
RxFinalizeConnection retorna STATUS_SUCCESS com êxito ou um dos seguintes códigos de erro sobre falha:
Código de retorno | Descrição |
---|---|
|
O Flags membro 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 |
Observações
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 do minidiretor de rede que chamaria a rotina de 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 |
---|---|
da Plataforma de Destino | Área de trabalho |
cabeçalho | rxprocs.h (include Rxprocs.h) |
IRQL | <= APC_LEVEL |