Funzione NetShareCheck (lmshare.h)

Controlla se un server condivide o meno un dispositivo.

Sintassi

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

Parametri

[in] servername

Puntatore a una stringa che specifica il nome DNS o NetBIOS del server remoto in cui deve essere eseguita la funzione. Se questo parametro è NULL, viene utilizzato il computer locale.

[in] device

Puntatore a una stringa che specifica il nome del dispositivo per verificare la presenza di accesso condiviso.

[out] type

Puntatore a una variabile che riceve una maschera di bit di flag che specifica il tipo del dispositivo condiviso. Questo parametro viene impostato solo se la funzione restituisce correttamente.

È possibile specificare uno dei flag seguenti.

Valore Significato
STYPE_DISKTREE
Unità disco rigido.
STYPE_PRINTQ
Coda di stampa.
STYPE_DEVICE
Dispositivo di comunicazione.
STYPE_IPC
Comunicazione interprocesso (IPC).
 

Inoltre, è possibile specificare uno o entrambi i flag seguenti.

Valore Significato
STYPE_SPECIAL
Condivisione speciale riservata per la comunicazione interprocesso (IPC$) o l'amministrazione remota del server (ADMIN$). Può anche fare riferimento a condivisioni amministrative come C$, D$, E$e così via. Per altre informazioni, vedere Funzioni di condivisione di rete.
STYPE_TEMPORARY
Una condivisione temporanea.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene NERR_Success.

Se la funzione ha esito negativo, il valore restituito può essere uno dei codici di errore seguenti.

Codice restituito Descrizione
ERROR_NOT_ENOUGH_MEMORY
Memoria insufficiente disponibile.
NERR_DeviceNotShared
Il dispositivo non è condiviso.

Commenti

Questa funzione si applica solo alle condivisioni SMB (Server Message Block). Per altri tipi di condivisioni, ad esempio DFS (Distributed File System) o WebDAV, usare le funzioni Di rete Windows (WNet), che supportano tutti i tipi di condivisioni.

Per eseguire correttamente la funzione NetShareCheck non è necessaria alcuna appartenenza a gruppi speciali.

Se si esegue la programmazione per Active Directory, è possibile chiamare determinati metodi ADSI (Active Directory Service Interface) per ottenere la stessa funzionalità che è possibile ottenere chiamando le funzioni di condivisione di gestione di rete. Per altre informazioni, vedere IADsFileShare.

Esempio

Nell'esempio di codice seguente viene illustrato come verificare se un server condivide un dispositivo usando una chiamata alla funzione NetShareCheck . La funzione restituisce il tipo di dispositivo condiviso, come descritto nella documentazione precedente per il parametro di tipo .

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

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione lmshare.h (include Lm.h)
Libreria Netapi32.lib
DLL Netapi32.dll

Vedi anche

NetShareEnum

NetShareGetInfo

Funzioni di gestione di rete

Panoramica della gestione della rete

Funzioni di condivisione di rete