Función NetShareCheck (lmshare.h)

Comprueba si un servidor comparte o no un dispositivo.

Sintaxis

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

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

Puntero a una cadena que especifica el nombre del dispositivo para comprobar el acceso compartido.

[out] type

Puntero a una variable que recibe una máscara de bits de marcas que especifican el tipo del dispositivo compartido. Este parámetro solo se establece si la función devuelve correctamente.

Se puede especificar una de las marcas siguientes.

Valor Significado
STYPE_DISKTREE
Unidad de disco.
STYPE_PRINTQ
Cola de impresión.
STYPE_DEVICE
Dispositivo de comunicación.
STYPE_IPC
Comunicación entre procesos (IPC).
 

Además, se puede especificar una o ambas marcas siguientes.

Valor Significado
STYPE_SPECIAL
Recurso compartido especial reservado para la comunicación entre procesos (IPC$) o la administración remota del servidor (ADMIN$). También puede hacer referencia a recursos compartidos administrativos como C$, D$, E$, etc. Para obtener más información, consulte Funciones de recurso compartido de red.
STYPE_TEMPORARY
Un recurso compartido temporal.

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_NOT_ENOUGH_MEMORY
No hay suficiente memoria disponible.
NERR_DeviceNotShared
El dispositivo no se comparte.

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.

No se requiere ninguna pertenencia especial a grupos para ejecutar correctamente la función NetShareCheck .

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.

Ejemplos

En el ejemplo de código siguiente se muestra cómo comprobar si un servidor comparte un dispositivo mediante una llamada a la función NetShareCheck . La función devuelve el tipo de dispositivo que se comparte, tal como se describe en la documentación anterior para el parámetro type .

#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 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

NetShareEnum

NetShareGetInfo

Funciones de administración de redes

Introducción a la administración de redes

Funciones de recurso compartido de red