Função NetShareSetInfo (lmshare.h)
Define os parâmetros de um recurso compartilhado.
Sintaxe
NET_API_STATUS NET_API_FUNCTION NetShareSetInfo(
[in] LMSTR servername,
[in] LMSTR netname,
[in] DWORD level,
[in] LPBYTE buf,
[out] LPDWORD parm_err
);
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] netname
Ponteiro para uma cadeia de caracteres que especifica o nome do compartilhamento no qual definir informações.
[in] level
Especifica o nível de informações dos dados. Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Especifica informações sobre o recurso compartilhado, incluindo o nome e o tipo do recurso e um comentário associado ao recurso. O parâmetro buf aponta para uma estrutura SHARE_INFO_1 . |
|
Especifica informações sobre o recurso compartilhado, incluindo o nome do recurso, o tipo e as permissões, a senha e o número de conexões. O parâmetro buf aponta para uma estrutura SHARE_INFO_2 . |
|
Especifica informações sobre o recurso compartilhado, incluindo o nome e o tipo do recurso, as permissões necessárias, o número de conexões e outras informações pertinentes. O parâmetro buf aponta para uma estrutura SHARE_INFO_502 . |
|
Especifica o nome do recurso compartilhado. O parâmetro buf aponta para uma estrutura SHARE_INFO_503 . Todos os membros dessa estrutura, exceto shi503_servername , são ignorados pela função NetShareSetInfo .
Windows Server 2003 e Windows XP: Não há suporte para esse nível de informação. |
|
Especifica um comentário associado ao recurso compartilhado. O parâmetro buf aponta para uma estrutura SHARE_INFO_1004 . |
|
Especifica um conjunto de sinalizadores que descrevem o recurso compartilhado. O parâmetro buf aponta para uma estrutura SHARE_INFO_1005 . |
|
Especifica o número máximo de conexões simultâneas que o recurso compartilhado pode acomodar. O parâmetro buf aponta para uma estrutura SHARE_INFO_1006 . |
|
Especifica o SECURITY_DESCRIPTOR associado ao compartilhamento especificado. O parâmetro buf aponta para uma estrutura SHARE_INFO_1501 . |
[in] buf
Ponteiro para o buffer que especifica os dados. O formato desses dados depende do valor do parâmetro level . Para obter mais informações, consulte Buffers de função de gerenciamento de rede.
[out] parm_err
Ponteiro para um valor que recebe o índice do primeiro membro da estrutura de informações de compartilhamento que causa o erro ERROR_INVALID_PARAMETER . Se esse parâmetro for NULL, o índice não será retornado com erro. Para obter mais informações, consulte a seção Comentários a seguir.
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 |
---|---|
|
O usuário não tem acesso às informações solicitadas. |
|
O valor especificado para o parâmetro de nível não é válido. |
|
O parâmetro especificado não é válido. Para obter mais informações, consulte a seção Comentários a seguir. |
|
O nome do compartilhamento não existe. |
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.
Somente os membros do grupo local Administradores ou Usuários avançados, ou aqueles com associação de grupo De impressão ou operador de servidor, podem executar com êxito a função NetShareSetInfo . O Operador de Impressão pode definir informações apenas sobre compartilhamentos de impressora.
Se a função NetShareSetInfo retornar ERROR_INVALID_PARAMETER, você poderá usar o parâmetro parm_err para indicar o primeiro membro da estrutura de informações de compartilhamento que não é válido. (Uma estrutura de informações de compartilhamento começa com SHARE_INFO_ e seu formato é especificado pelo parâmetro level .) A tabela a seguir lista os valores que podem ser retornados no parâmetro parm_err e o membro da estrutura correspondente que está com erro. (O shi * do prefixo indica que o membro pode começar com vários prefixos, por exemplo, shi2 ou shi502_.)
Valor | Membro |
---|---|
SHARE_NETNAME_PARMNUM | shi*_netname |
SHARE_TYPE_PARMNUM | shi*_type |
SHARE_REMARK_PARMNUM | shi*_remark |
SHARE_PERMISSIONS_PARMNUM | shi*_permissions |
SHARE_MAX_USES_PARMNUM | shi*_max_uses |
SHARE_CURRENT_USES_PARMNUM | shi*_current_uses |
SHARE_PATH_PARMNUM | shi*_path |
SHARE_PASSWD_PARMNUM | shi*_passwd |
SHARE_FILE_SD_PARMNUM | shi*_security_descriptor |
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.
Se 503 for especificado para o parâmetro level , o servidor remoto especificado no membro shi503_servername da estrutura SHARE_INFO_503 deverá ter sido associado a um protocolo de transporte usando a função NetServerTransportAddEx . Na chamada para NetServerTransportAddEx, 2 ou 3 devem ter sido especificados para o parâmetro de nível e o sinalizador SVTI2_SCOPED_NAME deve ter sido especificado na estrutura SERVER_TRANSPORT_INFO_2 para o protocolo de transporte.
Exemplos
O exemplo de código a seguir demonstra como definir o comentário associado a um recurso compartilhado usando uma chamada para a função NetShareSetInfo . Para fazer isso, o exemplo especifica o nível de informações 1004 (SHARE_INFO_1004).
#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[ ])
{
SHARE_INFO_1004 p;
NET_API_STATUS res;
DWORD parm_err = 0;
if(argc<4)
printf("Usage: SetInfo server share \"remark\"\n");
else
{
//
// Fill in SHARE_INFO_1004 structure member.
//
p.shi1004_remark=argv[3];
//
// Call the NetShareSetInfo function,
// specifying information level 1004.
//
res=NetShareSetInfo(argv[1], argv[2], 1004, (LPBYTE)&p, &parm_err);
//
// Display the result of the call.
//
if(res==0)
printf("Remark set.\n");
else
printf("Error: %u\tparmerr=%u\n", res, parm_err);
}
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
Funções de gerenciamento de rede
Visão geral do gerenciamento de rede