Función NetShareGetInfo (lmshare.h)
Recupera información sobre un recurso compartido determinado en un servidor.
Sintaxis
NET_API_STATUS NET_API_FUNCTION NetShareGetInfo(
[in] LMSTR servername,
[in] LMSTR netname,
[in] DWORD level,
[out] LPBYTE *bufptr
);
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 para el que se va a devolver 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 |
---|---|
|
Devuelve el nombre del recurso compartido. El parámetro bufptr apunta a una estructura SHARE_INFO_0 . |
|
Devuelve información sobre el recurso compartido, incluido el nombre y el tipo del recurso, y un comentario asociado al recurso. El parámetro bufptr apunta a una estructura SHARE_INFO_1 . |
|
Devuelve 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 bufptr apunta a una estructura SHARE_INFO_2 . |
|
Devuelve el nombre y el tipo del recurso y un comentario asociado al recurso. El parámetro bufptr apunta a una estructura SHARE_INFO_501 . |
|
Devuelve información sobre el recurso compartido, incluido el nombre del recurso, el tipo y los permisos, el número de conexiones y otra información pertinente. El parámetro bufptr apunta a una estructura SHARE_INFO_502 . |
|
Especifica información sobre el recurso compartido, incluido el nombre del recurso, el tipo y los permisos, el número de conexiones y otra información pertinente. El parámetro buf apunta a una estructura SHARE_INFO_503 . Si el miembro shi503_servername de esta estructura es "*", no hay ningún nombre de servidor configurado.
Windows Server 2003 y Windows XP: No se admite este nivel de información. |
|
Devuelve un valor que indica si el recurso compartido es el volumen raíz en una estructura de árbol Dfs. El parámetro bufptr apunta a una estructura de SHARE_INFO_1005 . |
[out] bufptr
Puntero al búfer que recibe 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 redes.
El sistema asigna este búfer y debe liberarse mediante la función NetApiBufferFree .
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto se 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. |
|
Memoria insuficiente disponible. |
|
El nombre del recurso compartido no existe. |
Comentarios
Esta función solo se aplica a los recursos compartidos de 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.
Para los usuarios interactivos (usuarios que han iniciado sesión localmente en la máquina), no se requiere ninguna pertenencia especial a grupos para ejecutar la función NetShareGetInfo . Para los usuarios no interactivos, se requiere la pertenencia al grupo Administrador, Usuario avanzado, Operador de impresión o Operador de servidor para ejecutar correctamente la función NetShareEnum en los niveles 2, 502 y 503. No se requiere ninguna pertenencia especial a grupos para las llamadas de nivel 0 o nivel 1.
Windows Server 2003 y Windows XP: Para todos los usuarios, se requiere la pertenencia a grupos administrador, usuario avanzado, operador de impresión o operador de servidor para ejecutar correctamente la función NetShareGetInfo en los niveles 2 y 502.
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 estar enlazado a un protocolo de transporte mediante la función NetServerTransportAddEx . En la llamada a NetServerTransportAddEx, debe haberse 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 recuperar información sobre un recurso compartido determinado mediante una llamada a la función NetShareGetInfo . El ejemplo llama a NetShareGetInfo, especificando el nivel de información 502 ( SHARE_INFO_502). Si la llamada se realiza correctamente, el código imprime los datos recuperados. El ejemplo también llama a la función IsValidSecurityDescriptor para validar el miembro shi502_security_descriptor . Por último, el ejemplo libera la memoria asignada para el búfer de información.
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <stdio.h>
#include <lm.h>
#pragma comment(lib, "Netapi32.lib")
#pragma comment(lib, "Advapi32.lib")
void wmain( int argc, TCHAR *lpszArgv[ ])
{
PSHARE_INFO_502 BufPtr;
NET_API_STATUS res;
LPTSTR lpszServer = NULL, lpszShare;
//
// Check command line arguments.
//
switch(argc)
{
case 3:
lpszServer = lpszArgv[2];
case 2:
lpszShare = lpszArgv[1];
break;
default:
printf("Usage: NetShareGetInfo sharename <servername>\n");
return;
}
//
// Call the NetShareGetInfo function, specifying level 502.
//
if((res = NetShareGetInfo (lpszServer,lpszShare,502,(LPBYTE *) &BufPtr)) == ERROR_SUCCESS)
{
//
// Print the retrieved data.
//
printf("%S\t%S\t%u\n",BufPtr->shi502_netname, BufPtr->shi502_path, BufPtr->shi502_current_uses);
//
// Validate the value of the
// shi502_security_descriptor member.
//
if (IsValidSecurityDescriptor(BufPtr->shi502_security_descriptor))
printf("It has a valid Security Descriptor.\n");
else
printf("It does not have a valid Security Descriptor.\n");
//
// Free the allocated memory.
//
NetApiBufferFree(BufPtr);
}
else
printf("Error: %ld\n",res);
return;
}
Requisitos
Requisito | Value |
---|---|
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 red
Introducción a la administración de redes