Поделиться через


Функция NetWkstaSetInfo (lmwksta.h)

Функция NetWkstaSetInfo настраивает рабочую станцию с информацией, которая остается в силе после повторной инициализации системы.

Синтаксис

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

Параметры

[in] servername

Указатель на строку, указывающую DNS- или NetBIOS-имя удаленного сервера, на котором выполняется функция. Если этот параметр имеет значение NULL, используется локальный компьютер.

[in] level

Информационный уровень данных. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
100
Windows NT. Указывает сведения о среде рабочей станции, включая сведения о конкретной платформе, имена домена и локального компьютера, а также сведения об операционной системе. Параметр buffer указывает на структуру WKSTA_INFO_100 . Поля wk100_computername и wk100_langroup этой структуры невозможно задать путем вызова этой функции. Чтобы задать эти значения, вызовите SetComputerName/SetComputerNameEx или NetJoinDomain соответственно.
101
Windows NT. Помимо сведений уровня 100, указывает путь к каталогу LANMAN. Параметр buffer указывает на структуру WKSTA_INFO_101 . Поля wk101_computername и wk101_langroup этой структуры невозможно задать путем вызова этой функции. Чтобы задать эти значения, вызовите SetComputerName/SetComputerNameEx или NetJoinDomain соответственно.
102
Windows NT. Помимо сведений уровня 101, указывает количество пользователей, выполнивших вход на локальный компьютер. Параметр buffer указывает на структуру WKSTA_INFO_102 . Поля wk102_computername и wk102_langroup этой структуры невозможно задать путем вызова этой функции. Чтобы задать эти значения, вызовите SetComputerName/SetComputerNameEx или NetJoinDomain соответственно.
502
Windows NT. Параметр buffer указывает на структуру WKSTA_INFO_502, содержащую сведения о среде рабочей станции.
 

Не устанавливайте уровни 1010–1013, 1018, 1023, 1027, 1028, 1032, 1033, 1035 или 1041–1062.

[in] buffer

Указатель на буфер, указывающий данные. Формат этих данных зависит от значения параметра level . Дополнительные сведения см. в разделе Буферы функций управления сетью.

[out] parm_err

Указатель на значение, которое получает индекс первого элемента информационной структуры рабочей станции, который вызывает ошибку ERROR_INVALID_PARAMETER. Если этот параметр имеет значение NULL, индекс не возвращается при ошибке. Дополнительные сведения см. в разделе «Примечания».

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение будет NERR_Success.

Если функция завершается сбоем, возвращаемое значение может быть одним из следующих кодов ошибок.

Код возврата Описание
ERROR_ACCESS_DENIED
У пользователя нет доступа к запрошенной информации.
ERROR_INVALID_PARAMETER
Один из параметров функции недопустим. Дополнительные сведения см. в разделе "Примечания".

Комментарии

Только члены группы Администраторы могут успешно выполнять функцию NetWkstaSetInfo на удаленном сервере.

Функция NetWkstaSetInfo вызывает службу рабочей станции в локальной или удаленной системе. С помощью функции NetWkstaSetInfo можно изменить только ограниченное число элементов структуры WKSTA_INFO_502. Если задан элемент, игнорируемый службой рабочей станции, ошибки не возвращаются. Служба рабочей станции в основном настраивается с помощью параметров в реестре.

Для задания сведений о конфигурации в локальной системе вместо функции NetWkstaSetInfo можно использовать функцию NetWkstaUserSetInfo. Функция NetWkstaUserSetInfo вызывает локальный центр безопасности (LSA).

Если функция NetWkstaSetInfo возвращает ERROR_INVALID_PARAMETER, можно использовать параметр parm_err , чтобы указать, что первый элемент информационной структуры рабочей станции является недопустимым. (Информационная структура рабочей станции начинается с WKSTA_INFO_ и ее формат задается параметром уровня .) В следующей таблице перечислены значения, которые могут быть возвращены в параметре parm_err , и соответствующий элемент структуры, который находится в ошибке. (Префикс wki*_ указывает, что элемент может начинаться с нескольких префиксов, например wki100_ или wki402_.)

Значение Член
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
 

Параметры службы рабочей станции хранятся в реестре, а не в файле LanMan.ini, который ранее использовался диспетчером локальной сети. Функция NetWkstaSetInfo не изменяет значения в файле LanMan.ini. При остановке и перезапуске службы рабочей станции параметры рабочей станции сбрасываются до значений по умолчанию, указанных в реестре (если они не перезаписываются параметрами командной строки). Значения, заданные предыдущими вызовами NetWkstaSetInfo , могут быть перезаписаны при сбросе параметров рабочей станции.

Примеры

В следующем примере кода показано, как задать значение времени ожидания сеанса, связанное с рабочей станцией, с помощью вызова функции NetServerSetInfo . (Время ожидания сеанса — это количество секунд, в течение которых сервер ожидает перед отключением неактивного сеанса.) Код задает уровень информации 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;
}

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header lmwksta.h (включая Lm.h)
Библиотека Netapi32.lib
DLL Netapi32.dll

См. также раздел

NetWkstaGetInfo

NetWkstaUserGetInfo

NetWkstaUserSetInfo

Функции управления сетью

Общие сведения об управлении сетью

Рабочие станции и пользовательские функции рабочей станции