Функция 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
Информационный уровень данных. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Windows NT. Указывает сведения о среде рабочей станции, включая сведения о конкретной платформе, имена домена и локального компьютера, а также сведения об операционной системе. Параметр buffer указывает на структуру WKSTA_INFO_100 . Поля wk100_computername и wk100_langroup этой структуры невозможно задать путем вызова этой функции. Чтобы задать эти значения, вызовите SetComputerName/SetComputerNameEx или NetJoinDomain соответственно. |
|
Windows NT. Помимо сведений уровня 100, указывает путь к каталогу LANMAN. Параметр buffer указывает на структуру WKSTA_INFO_101 . Поля wk101_computername и wk101_langroup этой структуры невозможно задать путем вызова этой функции. Чтобы задать эти значения, вызовите SetComputerName/SetComputerNameEx или NetJoinDomain соответственно. |
|
Windows NT. Помимо сведений уровня 101, указывает количество пользователей, выполнивших вход на локальный компьютер. Параметр buffer указывает на структуру WKSTA_INFO_102 . Поля wk102_computername и wk102_langroup этой структуры невозможно задать путем вызова этой функции. Чтобы задать эти значения, вызовите SetComputerName/SetComputerNameEx или NetJoinDomain соответственно. |
|
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.
Если функция завершается сбоем, возвращаемое значение может быть одним из следующих кодов ошибок.
Код возврата | Описание |
---|---|
|
У пользователя нет доступа к запрошенной информации. |
|
Один из параметров функции недопустим. Дополнительные сведения см. в разделе "Примечания". |
Комментарии
Только члены группы Администраторы могут успешно выполнять функцию 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 |