Função NetShareCheck (lmshare.h)

Verifica se um servidor está ou não compartilhando um dispositivo.

Sintaxe

NET_API_STATUS NET_API_FUNCTION NetShareCheck(
  [in]  LMSTR   servername,
  [in]  LMSTR   device,
  [out] LPDWORD type
);

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] device

Ponteiro para uma cadeia de caracteres que especifica o nome do dispositivo a ser marcar para acesso compartilhado.

[out] type

Ponteiro para uma variável que recebe uma máscara de bits de sinalizadores que especificam o tipo do dispositivo compartilhado. Esse parâmetro será definido somente se a função retornar com êxito.

Um dos sinalizadores a seguir pode ser especificado.

Valor Significado
STYPE_DISKTREE
Unidade de disco.
STYPE_PRINTQ
Fila de impressão.
STYPE_DEVICE
Dispositivo de comunicação.
STYPE_IPC
Comunicação entre processos (IPC).
 

Além disso, um ou ambos os sinalizadores a seguir podem ser especificados.

Valor Significado
STYPE_SPECIAL
Compartilhamento especial reservado para comunicação entre processos (IPC$) ou administração remota do servidor (ADMIN$). Também pode se referir a compartilhamentos administrativos como C$, D$, E$e assim por diante. Para obter mais informações, consulte Funções de compartilhamento de rede.
STYPE_TEMPORARY
Um compartilhamento temporário.

Valor retornado

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 códigos de erro a seguir.

Código de retorno Descrição
ERROR_NOT_ENOUGH_MEMORY
Memória insuficiente disponível.
NERR_DeviceNotShared
O dispositivo não é compartilhado.

Comentários

Essa função se aplica somente a compartilhamentos SMB (Server Message Block). Para outros tipos de compartilhamentos, como DFS (Sistema de Arquivos Distribuído) ou compartilhamentos WebDAV, use funções WNet (Windows Networking), que dão suporte a todos os tipos de compartilhamentos.

Nenhuma associação de grupo especial é necessária para executar com êxito a função NetShareCheck .

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 compartilhamento de gerenciamento de rede. Para obter mais informações, consulte IADsFileShare.

Exemplos

O exemplo de código a seguir demonstra como marcar se um servidor está compartilhando um dispositivo, usando uma chamada para a função NetShareCheck. A função retorna o tipo de dispositivo que está sendo compartilhado, conforme descrito na documentação anterior para o parâmetro de tipo .

#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <stdio.h>
#include <lm.h>
#pragma comment(lib, "Netapi32.lib")

void wmain( int argc, TCHAR *argv[ ])
{
   NET_API_STATUS res;
   DWORD devType = 0;

   if(argc<3)
      printf("Usage: NetShareCheck server device\n");
   else
   {
      //
      // Call the NetShareCheck function.
      //
      res=NetShareCheck(argv[1], argv[2], &devType);
      //
      // If the function succeeds, inform the user.
      //
      if(res==0)
         printf("Device is shared as type %u.\n",devType);
      //
      // Otherwise, print the error.
      //
      else
         printf("Error: %u\n", res);
   }
   return;
}

Requisitos

   
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

NetShareEnum

NetShareGetInfo

Funções de gerenciamento de rede

Visão geral do gerenciamento de rede

Funções de compartilhamento de rede