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 |
---|---|
|
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 . |
|
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 . |
|
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 . |
|
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. |
|
Especifica un comentario asociado al recurso compartido. El parámetro buf apunta a una estructura SHARE_INFO_1004 . |
|
Especifica un conjunto de marcas que describen el recurso compartido. El parámetro buf apunta a una estructura SHARE_INFO_1005 . |
|
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 . |
|
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 |
---|---|
|
El usuario no tiene acceso a la información pedida. |
|
El valor especificado para el parámetro level no es válido. |
|
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. |
|
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
Funciones de administración de redes
Introducción a la administración de redes