Condividi tramite


Funzione NetWkstaSetInfo (lmwksta.h)

La funzione NetWkstaSetInfo configura una workstation con informazioni che rimangono attive dopo la reinizializzazione del sistema.

Sintassi

NET_API_STATUS NET_API_FUNCTION NetWkstaSetInfo(
  [in]  LMSTR   servername,
  [in]  DWORD   level,
  [in]  LPBYTE  buffer,
  [out] LPDWORD parm_err
);

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

Livello informativo dei dati. Questo parametro può avere uno dei valori seguenti.

Valore Significato
100
Windows NT: Specifica informazioni su un ambiente workstation, incluse le informazioni specifiche della piattaforma, i nomi del dominio e il computer locale e le informazioni relative al sistema operativo. Il parametro buffer punta a una struttura WKSTA_INFO_100 . I campi wk100_computername e wk100_langroup di questa struttura non possono essere impostati chiamando questa funzione. Per impostare questi valori, chiamare rispettivamente SetComputerName/SetComputerNameEx o NetJoinDomain.
101
Windows NT: Oltre alle informazioni di livello 100, specifica il percorso della directory LANMAN. Il parametro buffer punta a una struttura WKSTA_INFO_101 . I campi wk101_computername e wk101_langroup di questa struttura non possono essere impostati chiamando questa funzione. Per impostare questi valori, chiamare rispettivamente SetComputerName/SetComputerNameEx o NetJoinDomain.
102
Windows NT: Oltre alle informazioni di livello 101, specifica il numero di utenti connessi al computer locale. Il parametro buffer punta a una struttura WKSTA_INFO_102 . I campi wk102_computername e wk102_langroup di questa struttura non possono essere impostati chiamando questa funzione. Per impostare questi valori, chiamare rispettivamente SetComputerName/SetComputerNameEx o NetJoinDomain.
502
Windows NT: Il parametro buffer punta a una struttura WKSTA_INFO_502 che contiene informazioni sull'ambiente workstation.
 

Non impostare i livelli 1010-1013, 1018, 1023, 1027, 1028, 1032, 1033, 1035 o 1041-1062.

[in] buffer

Puntatore al buffer che specifica i dati. Il formato di questi dati dipende dal valore del parametro level . Per altre informazioni, vedere Buffer delle funzioni di gestione di rete.

[out] parm_err

Puntatore a un valore che riceve l'indice del primo membro della struttura delle informazioni della workstation che causa l'errore di ERROR_INVALID_PARAMETER. Se questo parametro è NULL, l'indice non viene restituito in caso di errore. Per altre informazioni, vedere la sezione Osservazioni.

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_ACCESS_DENIED
L'utente non ha accesso alle informazioni richieste.
ERROR_INVALID_PARAMETER
Uno dei parametri della funzione non è valido. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

Commenti

Solo i membri del gruppo Administrators possono eseguire correttamente la funzione NetWkstaSetInfo in un server remoto.

La funzione NetWkstaSetInfo chiama il servizio workstation nel sistema locale o in un sistema remoto. Solo un numero limitato di membri della struttura WKSTA_INFO_502 può essere effettivamente modificato usando la funzione NetWkstaSetInfo . Non vengono restituiti errori se un membro è impostato che viene ignorato dal servizio workstation. Il servizio workstation viene configurato principalmente usando le impostazioni nel Registro di sistema.

La funzione NetWkstaUserSetInfo può essere usata anziché la funzione NetWkstaSetInfo per impostare le informazioni di configurazione nel sistema locale. La funzione NetWkstaUserSetInfo chiama l'Autorità di sicurezza locale (LSA).

Se la funzione NetWkstaSetInfo restituisce ERROR_INVALID_PARAMETER, è possibile usare il parametro parm_err per indicare il primo membro della struttura delle informazioni della workstation non valida. Una struttura di informazioni sulla workstation inizia con WKSTA_INFO_ e il relativo formato viene specificato dal parametro level . Nella tabella seguente sono elencati i valori che è possibile restituire nel parametro parm_err e nel membro della struttura corrispondente in errore. Il prefisso wki*_ indica che il membro può iniziare con più prefissi, ad esempio wki100_ o wki402_.

Valore Membro
WKSTA_PLATFORM_ID_PARMNUM wki*_platform_id
WKSTA_COMPUTERNAME_PARMNUM wki*_computername
WKSTA_LANGROUP_PARMNUM wki*_langroup
WKSTA_VER_MAJOR_PARMNUM wki*_ver_major
WKSTA_VER_MINOR_PARMNUM wki*_ver_minor
WKSTA_LOGGED_ON_USERS_PARMNUM wki*_logged_on_users
WKSTA_LANROOT_PARMNUM wki*_lanroot
WKSTA_LOGON_DOMAIN_PARMNUM wki*_logon_domain
WKSTA_LOGON_SERVER_PARMNUM wki*_logon_server
WKSTA_CHARWAIT_PARMNUM wki*_char_wait
WKSTA_CHARTIME_PARMNUM wki*_collection_time
WKSTA_CHARCOUNT_PARMNUM wki*_maximum_collection_count
WKSTA_KEEPCONN_PARMNUM wki*_keep_conn
WKSTA_KEEPSEARCH_PARMNUM wki*_keep_search
WKSTA_MAXCMDS_PARMNUM wki*_max_cmds
WKSTA_NUMWORKBUF_PARMNUM wki*_num_work_buf
WKSTA_MAXWRKCACHE_PARMNUM wki*_max_wrk_cache
WKSTA_SESSTIMEOUT_PARMNUM wki*_sess_timeout
WKSTA_SIZERROR_PARMNUM wki*_siz_error
WKSTA_NUMALERTS_PARMNUM wki*_num_alerts
WKSTA_NUMSERVICES_PARMNUM wki*_num_services
WKSTA_ERRLOGSZ_PARMNUM wki*_errlog_sz
WKSTA_PRINTBUFTIME_PARMNUM wki*_print_buf_time
WKSTA_NUMCHARBUF_PARMNU wki*_num_char_buf
WKSTA_SIZCHARBUF_PARMNUM wki*_siz_char_buf
WKSTA_WRKHEURISTICS_PARMNUM wki*_wrk_heuristics
WKSTA_MAILSLOTS_PARMNUM wki*_mailslots
WKSTA_MAXTHREADS_PARMNUM wki*_max_threads
WKSTA_SIZWORKBUF_PARMNUM wki*_siz_work_buf
WKSTA_NUMDGRAMBUF_PARMNUM wki*_num_dgram_buf
 

Le impostazioni dei parametri del servizio workstation vengono archiviate nel Registro di sistema, non nel file LanMan.ini usato in precedenza da LAN Manager. La funzione NetWkstaSetInfo non modifica i valori nel file LanMan.ini. Quando il servizio workstation viene arrestato e riavviato, i parametri della workstation vengono reimpostati sui valori predefiniti specificati nel Registro di sistema , a meno che non vengano sovrascritti dai parametri della riga di comando. I valori impostati dalle chiamate precedenti a NetWkstaSetInfo possono essere sovrascritti quando vengono reimpostati i parametri della workstation.

Esempio

Nell'esempio di codice seguente viene illustrato come impostare il valore di timeout della sessione associato a una workstation usando una chiamata alla funzione NetServerSetInfo . Il timeout della sessione è il numero di secondi di attesa del server prima di disconnettere una sessione inattiva. Il codice specifica il livello di informazioni 502 (WKSTA_INFO_502).

#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "netapi32.lib")

#include <stdio.h>
#include <windows.h> 
#include <lm.h>

int wmain(int argc, wchar_t *argv[])
{
   LPWKSTA_INFO_502 pBuf = NULL;
   WKSTA_INFO_502 wi;
   DWORD dwLevel = 502;
   NET_API_STATUS nStatus;
   LPWSTR pszServerName = NULL;

   if ((argc < 2) || (argc > 3))
   {
      fwprintf(stderr, L"Usage: %s [\\\\ServerName] SessionTimeOut\n", argv[0]);
      exit(1);
   }

   if (argc == 3)
      pszServerName = argv[1];
   //
   // Retrieve the current settings.
   //
   nStatus = NetWkstaGetInfo(pszServerName,
                             dwLevel,
                             (LPBYTE *)&pBuf);

   if (nStatus != NERR_Success)
   {
      fprintf(stderr, "A system error has occurred (NetWkstaGetInfo): %d\n", nStatus);
      return -1;
   }

   if (pBuf != NULL)
   {
      //
      // Copy the existing settings to the new structure,
      //   and free the buffer.
      //
      CopyMemory(&wi, pBuf, sizeof(wi));
      NetApiBufferFree(pBuf);
   }
   else
   {
      fprintf(stderr, "Memory invalid!\n");
      return -1;
   }
   //
   // Set a new session time-out value by
   //   calling the NetWkstaSetInfo function.
   //
   wi.wki502_sess_timeout = _wtoi(argv[argc-1]);
   nStatus = NetWkstaSetInfo(pszServerName,
                             dwLevel,
                             (LPBYTE)&wi,
                             NULL);
   //
   // Display the result of the call.
   //
   if (nStatus == NERR_Success)
      fwprintf(stderr, L"Workstation information reset: session time-out = %d\n", _wtoi(argv[argc-1]));
   else
      fprintf(stderr, "A system error has occurred (NetWkstaSetInfo): %d\n", nStatus);

   return 0;
}

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione lmwksta.h (include Lm.h)
Libreria Netapi32.lib
DLL Netapi32.dll

Vedi anche

NetWkstaGetInfo

NetWkstaUserGetInfo

NetWkstaUserSetInfo

Funzioni di gestione di rete

Panoramica della gestione della rete

Funzioni utente workstation e workstation