Função NetSessionDel (lmshare.h)

Encerra uma sessão de rede entre um servidor e uma estação de trabalho.

Sintaxe

NET_API_STATUS NET_API_FUNCTION NetSessionDel(
  [in] LMSTR servername,
  [in] LMSTR UncClientName,
  [in] LMSTR username
);

Parâmetros

[in] servername

Ponteiro para uma cadeia de caracteres que especifica o nome DNS ou NetBIOS do servidor remoto no qual a função deve ser executada. Se esse parâmetro for NULL, o computador local será usado.

[in] UncClientName

Ponteiro para uma cadeia de caracteres que especifica o nome do computador do cliente a ser desconectado. Se o parâmetro UncClientName for NULL, todas as sessões do usuário identificadas pelo parâmetro username serão excluídas no servidor especificado pelo parâmetro servername . Para obter mais informações, consulte NetSessionEnum.

[in] username

Ponteiro para uma cadeia de caracteres que especifica o nome do usuário cuja sessão deve ser encerrada. Se esse parâmetro for NULL, todas as sessões de usuários do cliente especificadas pelo parâmetro UncClientName deverão ser encerradas.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NERR_Success.

Se a função falhar, o valor retornado poderá ser um dos seguintes códigos de erro.

Código de retorno Descrição
ERROR_ACCESS_DENIED
O usuário não tem acesso às informações solicitadas.
ERROR_INVALID_PARAMETER
O parâmetro especificado não é válido.
ERROR_NOT_ENOUGH_MEMORY
Memória insuficiente disponível.
NERR_ClientNameNotFound
Uma sessão não existe com esse nome de computador.

Comentários

Somente os membros do grupo local Administradores ou Operadores de Servidor podem executar com êxito a função NetSessionDel .

Se você estiver programando para o Active Directory, poderá chamar determinados métodos ADSI (Active Directory Service Interface) para obter a mesma funcionalidade que você pode obter chamando as funções de sessão de gerenciamento de rede. Para obter mais informações, consulte IADsSession e IADsFileServiceOperations.

Exemplos

O exemplo de código a seguir demonstra como encerrar uma sessão entre um servidor e uma estação de trabalho usando uma chamada para a função NetSessionDel .

#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "Netapi32.lib")

#include <stdio.h>
#include <windows.h> 
#include <lm.h>

int wmain(int argc, wchar_t *argv[])
{
   DWORD dwError = 0;
   LPTSTR pszServerName = NULL;
   LPTSTR pszClientName = NULL;
   LPTSTR pszUserName = NULL;
   NET_API_STATUS nStatus;
   //
   // Check command line arguments.
   //
   if (argc > 4)
   {
      wprintf(L"Usage: %s [\\\\ServerName] [\\\\ClientName] [UserName]\n", argv[0]);
      exit(1);
   }

   if (argc >= 2)
      pszServerName = argv[1];

   if (argc >= 3)
      pszClientName = argv[2];

   if (argc == 4)
      pszUserName = argv[3];
   //
   // Call the NetSessionDel function to delete the session.
   //
   nStatus = NetSessionDel(pszServerName,
                           pszClientName,
                           pszUserName);
   //
   // Display the result of the call.
   //
   if (nStatus == NERR_Success)
      fprintf(stderr, "The specified session(s) has been successfully deleted\n");
   else
      fprintf(stderr, "A system error has occurred: %d\n", nStatus);

   return 0;
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho lmshare.h (inclua Lm.h)
Biblioteca Netapi32.lib
DLL Netapi32.dll

Confira também

NetSessionEnum

NetSessionGetInfo

Funções de gerenciamento de rede

Visão geral do gerenciamento de rede

Funções de sessão