NetWkstaSetInfo, fonction (lmwksta.h)

La fonction NetWkstaSetInfo configure une station de travail avec des informations qui restent en vigueur une fois que le système a été réinitialisé.

Syntaxe

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

Paramètres

[in] servername

Pointeur vers une chaîne qui spécifie le nom DNS ou NetBIOS du serveur distant sur lequel la fonction doit s’exécuter. Si ce paramètre a la valeur NULL, l’ordinateur local est utilisé.

[in] level

Niveau d’informations des données. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
100
Windows NT : Spécifie des informations sur un environnement de station de travail, notamment des informations spécifiques à la plateforme, les noms du domaine et de l’ordinateur local, ainsi que des informations relatives au système d’exploitation. Le paramètre de mémoire tampon pointe vers une structure WKSTA_INFO_100 . Les champs wk100_computername et wk100_langroup de cette structure ne peuvent pas être définis en appelant cette fonction. Pour définir ces valeurs, appelez Respectivement SetComputerName/SetComputerNameEx ou NetJoinDomain.
101
Windows NT : En plus des informations de niveau 100, spécifie le chemin d’accès au répertoire LANMAN. Le paramètre de mémoire tampon pointe vers une structure WKSTA_INFO_101 . Les champs wk101_computername et wk101_langroup de cette structure ne peuvent pas être définis en appelant cette fonction. Pour définir ces valeurs, appelez Respectivement SetComputerName/SetComputerNameEx ou NetJoinDomain.
102
Windows NT : En plus des informations de niveau 101, spécifie le nombre d’utilisateurs connectés à l’ordinateur local. Le paramètre de mémoire tampon pointe vers une structure WKSTA_INFO_102 . Les champs wk102_computername et wk102_langroup de cette structure ne peuvent pas être définis en appelant cette fonction. Pour définir ces valeurs, appelez Respectivement SetComputerName/SetComputerNameEx ou NetJoinDomain.
502
Windows NT : Le paramètre de mémoire tampon pointe vers une structure WKSTA_INFO_502 qui contient des informations sur l’environnement de station de travail.
 

Ne définissez pas les niveaux 1010-1013, 1018, 1023, 1027, 1028, 1032, 1033, 1035 ou 1041-1062.

[in] buffer

Pointeur vers la mémoire tampon qui spécifie les données. Le format de ces données dépend de la valeur du paramètre de niveau . Pour plus d’informations, consultez Mémoires tampons de fonction de gestion réseau.

[out] parm_err

Pointeur vers une valeur qui reçoit l’index du premier membre de la structure d’informations de station de travail qui provoque l’erreur ERROR_INVALID_PARAMETER. Si ce paramètre a la valeur NULL, l’index n’est pas retourné en cas d’erreur. Pour plus d'informations, consultez la section Notes.

Valeur retournée

Si la fonction réussit, la valeur de retour est NERR_Success.

Si la fonction échoue, la valeur de retour peut être l’un des codes d’erreur suivants.

Code de retour Description
ERROR_ACCESS_DENIED
L’utilisateur n’a pas accès aux informations demandées.
ERROR_INVALID_PARAMETER
L’un des paramètres de fonction n’est pas valide. Pour plus d'informations, consultez la section Notes qui suit.

Remarques

Seuls les membres du groupe Administrateurs peuvent exécuter correctement la fonction NetWkstaSetInfo sur un serveur distant.

La fonction NetWkstaSetInfo appelle le service de station de travail sur le système local ou un système distant. Seuls un nombre limité de membres de la structure WKSTA_INFO_502 peuvent réellement être modifiés à l’aide de la fonction NetWkstaSetInfo . Aucune erreur n’est retournée si un membre est défini qui est ignoré par le service de station de travail. Le service de station de travail est principalement configuré à l’aide des paramètres du Registre.

La fonction NetWkstaUserSetInfo peut être utilisée à la place de la fonction NetWkstaSetInfo pour définir les informations de configuration sur le système local. La fonction NetWkstaUserSetInfo appelle l’autorité de sécurité locale (LSA).

Si la fonction NetWkstaSetInfo retourne ERROR_INVALID_PARAMETER, vous pouvez utiliser le paramètre parm_err pour indiquer le premier membre de la structure d’informations de station de travail qui n’est pas valide. (Une structure d’informations de station de travail commence par WKSTA_INFO_ et son format est spécifié par le paramètre level .) Le tableau suivant répertorie les valeurs qui peuvent être retournées dans le paramètre parm_err et le membre de structure correspondant qui est en erreur. (Le préfixe wki*_ indique que le membre peut commencer par plusieurs préfixes, par exemple, wki100_ ou wki402_.)

Valeur Membre
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
 

Les paramètres du service de station de travail sont stockés dans le Registre, et non dans le fichier LanMan.ini utilisé précédemment par LE Gestionnaire de réseau local. La fonction NetWkstaSetInfo ne modifie pas les valeurs du fichier LanMan.ini. Lorsque le service de station de travail est arrêté et redémarré, les paramètres de station de travail sont réinitialisés aux valeurs par défaut spécifiées dans le Registre (sauf s’ils sont remplacés par des paramètres de ligne de commande). Les valeurs définies par les appels précédents à NetWkstaSetInfo peuvent être remplacées lorsque les paramètres de la station de travail sont réinitialisés.

Exemples

L’exemple de code suivant montre comment définir la valeur de délai d’attente de session associée à une station de travail à l’aide d’un appel à la fonction NetServerSetInfo . (Le délai d’attente de session est le nombre de secondes que le serveur attend avant de déconnecter une session inactive.) Le code spécifie le niveau d’informations 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;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête lmwksta.h (include Lm.h)
Bibliothèque Netapi32.lib
DLL Netapi32.dll

Voir aussi

NetWkstaGetInfo

NetWkstaUserGetInfo

NetWkstaUserSetInfo

Fonctions de gestion réseau

Vue d’ensemble de la gestion du réseau

Fonctions utilisateur de station de travail et de station de travail