Función NetShareSetInfo (lmshare.h)

Establece los parámetros de un recurso compartido.

Sintaxis

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

Puntero a una cadena que especifica el nombre DNS o NetBIOS del servidor remoto en el que se va a ejecutar la función. Si este parámetro es NULL, se usa el equipo local.

[in] netname

Puntero a una cadena que especifica el nombre del recurso compartido en el que se va a establecer información.

[in] level

Especifica el nivel de información de los datos. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
1
Especifica información sobre el recurso compartido, incluido el nombre y el tipo del recurso, y un comentario asociado al recurso. El parámetro buf apunta a una estructura de SHARE_INFO_1 .
2
Especifica información sobre el recurso compartido, incluido el nombre del recurso, el tipo y los permisos, la contraseña y el número de conexiones. El parámetro buf apunta a una estructura SHARE_INFO_2 .
502
Especifica información sobre el recurso compartido, incluido el nombre y el tipo del recurso, los permisos necesarios, el número de conexiones y otra información pertinente. El parámetro buf apunta a una estructura SHARE_INFO_502 .
503
Especifica el nombre del recurso compartido. El parámetro buf apunta a una estructura SHARE_INFO_503 . La función NetShareSetInfo omite todos los miembros de esta estructura, excepto shi503_servername.

Windows Server 2003 y Windows XP: No se admite este nivel de información.

1004
Especifica un comentario asociado al recurso compartido. El parámetro buf apunta a una estructura SHARE_INFO_1004 .
1005
Especifica un conjunto de marcas que describen el recurso compartido. El parámetro buf apunta a una estructura SHARE_INFO_1005 .
1006
Especifica el número máximo de conexiones simultáneas que el recurso compartido puede acomodar. El parámetro buf apunta a una estructura SHARE_INFO_1006 .
1501
Especifica el SECURITY_DESCRIPTOR asociado al recurso compartido especificado. El parámetro buf apunta a una estructura SHARE_INFO_1501 .

[in] buf

Puntero al búfer que especifica los datos. El formato de estos datos depende del valor del parámetro level . Para obtener más información, consulte Búferes de funciones de administración de red.

[out] parm_err

Puntero a un valor que recibe el índice del primer miembro de la estructura de información del recurso compartido que provoca el error ERROR_INVALID_PARAMETER . Si este parámetro es NULL, el índice no se devuelve en caso de error. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es NERR_Success.

Si se produce un error en la función, el valor devuelto puede ser uno de los siguientes códigos de error.

Código devuelto Descripción
ERROR_ACCESS_DENIED
El usuario no tiene acceso a la información pedida.
ERROR_INVALID_LEVEL
El valor especificado para el parámetro level no es válido.
ERROR_INVALID_PARAMETER
El parámetro especificado no es válido. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
NERR_NetNameNotFound
El nombre del recurso compartido no existe.

Comentarios

Esta función solo se aplica a los recursos compartidos del bloque de mensajes del servidor (SMB). Para otros tipos de recursos compartidos, como sistemas de archivos distribuidos (DFS) o recursos compartidos de WebDAV, use funciones de Redes de Windows (WNet), que admiten todos los tipos de recursos compartidos.

Solo los miembros del grupo local Administradores o usuarios avanzados, o aquellos con pertenencia al grupo Operador de impresión o servidor, pueden ejecutar correctamente la función NetShareSetInfo . El operador de impresión solo puede establecer información sobre los recursos compartidos de impresora.

Si la función NetShareSetInfo devuelve ERROR_INVALID_PARAMETER, puede usar el parámetro parm_err para indicar el primer miembro de la estructura de información del recurso compartido que no es válida. (Una estructura de información de recurso compartido comienza por SHARE_INFO_ y su formato se especifica mediante el parámetro level ). En la tabla siguiente se enumeran los valores que se pueden devolver en el parámetro parm_err y el miembro de estructura correspondiente que se encuentra en error. (El prefijo shi* indica que el miembro puede comenzar con varios prefijos, por ejemplo, shi2 o shi502_).

Valor Miembro
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
 

Si está programando para Active Directory, puede llamar a determinados métodos de interfaz de servicio de Active Directory (ADSI) para lograr la misma funcionalidad que puede lograr llamando a las funciones de recurso compartido de administración de red. Para obtener más información, vea IADsFileShare.

Si se especifica 503 para el parámetro level , el servidor remoto especificado en el miembro shi503_servername de la estructura SHARE_INFO_503 debe haberse enlazado a un protocolo de transporte mediante la función NetServerTransportAddEx . En la llamada a NetServerTransportAddEx, se debe haber especificado 2 o 3 para el parámetro level y la marca SVTI2_SCOPED_NAME debe haberse especificado en la estructura SERVER_TRANSPORT_INFO_2 para el protocolo de transporte.

Ejemplos

En el ejemplo de código siguiente se muestra cómo establecer el comentario asociado a un recurso compartido mediante una llamada a la función NetShareSetInfo . Para ello, el ejemplo especifica el nivel de información 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 compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado lmshare.h (include Lm.h)
Library Netapi32.lib
Archivo DLL Netapi32.dll

Consulte también

NetServerTransportAddEx

NetShareGetInfo

Funciones de administración de redes

Introducción a la administración de redes

Funciones de recurso compartido de red

SHARE_INFO_1

SHARE_INFO_1004

SHARE_INFO_1005

SHARE_INFO_1006

SHARE_INFO_1501

SHARE_INFO_2

SHARE_INFO_502

SHARE_INFO_503