NetServerSetInfo 函数 (lmserver.h)
NetServerSetInfo 函数设置服务器的操作参数;它可以单独或集体设置它们。 信息以允许在重新初始化系统后保持有效的方式存储。
语法
NET_API_STATUS NET_API_FUNCTION NetServerSetInfo(
[in] LMSTR servername,
[in] DWORD level,
[in] LPBYTE buf,
[out] LPDWORD ParmError
);
parameters
[in] servername
指向字符串的指针,该字符串指定要在其中执行函数的远程服务器的名称。 如果此参数为 NULL,则使用本地计算机。
[in] level
指定数据的信息级别。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
指定服务器名称、类型和关联的软件。 buf 参数指向SERVER_INFO_101结构。 |
|
指定服务器名称、类型、关联的软件和其他属性。 buf 参数指向SERVER_INFO_102结构。 |
|
指定有关服务器的详细信息。 buf 参数指向SERVER_INFO_402结构。 |
|
指定有关服务器的详细信息。 buf 参数指向SERVER_INFO_403结构。 |
此外,级别 1001-1006、1009-1011、1016-1018、1021、1022、1028、1029、1037 和 1043 基于 LAN Manager 系统的限制有效。
[in] buf
指向接收服务器信息的缓冲区的指针。 此数据的格式取决于 级别 参数的值。 有关详细信息,请参阅 网络管理功能缓冲区。
[out] ParmError
指向一个值的指针,该值接收导致ERROR_INVALID_PARAMETER错误的服务器信息结构第一个成员的索引。 如果此参数为 NULL,则错误时不会返回索引。 有关更多信息,请参见下面的“备注”部分。
返回值
如果函数成功,则返回值NERR_Success。
如果函数失败,则返回值可能是以下错误代码之一。
返回代码 | 说明 |
---|---|
|
用户无权访问请求的信息。 |
|
为 级别 参数指定的值无效。 |
|
指定的参数无效。 有关更多信息,请参见下面的“备注”部分。 |
|
可用内存不足。 |
注解
只有管理员或服务器操作员本地组的成员才能成功执行 NetServerSetInfo 函数。
如果要为 Active Directory 编程,则可以调用某些 Active Directory 服务接口 (ADSI) 方法,以实现通过调用网络管理服务器函数可实现的相同功能。 有关详细信息,请参阅 IADsComputer。
如果 NetServerSetInfo 函数返回ERROR_INVALID_PARAMETER,则可以使用 ParmError 参数来指示服务器信息结构的第一个成员无效。 (服务器信息结构以SERVER_INFO_开头,其格式由 级别 参数指定。) 下表列出了可在 ParmError 参数中返回的值以及出错的相应结构成员。 (前缀 sv*_ 指示成员可以以多个前缀开头,例如,sv101_或 sv402_.)
值 | 成员 |
---|---|
SV_PLATFORM_ID_PARMNUM | sv*_platform_id |
SV_NAME_PARMNUM | sv*_name |
SV_VERSION_MAJOR_PARMNUM | sv*_version_major |
SV_VERSION_MINOR_PARMNUM | sv*_version_minor |
SV_TYPE_PARMNUM | sv*_type |
SV_COMMENT_PARMNUM | sv*_comment |
SV_USERS_PARMNUM | sv*_users |
SV_DISC_PARMNUM | sv*_disc |
SV_HIDDEN_PARMNUM | sv*_hidden |
SV_ANNOUNCE_PARMNUM | sv*_announce |
SV_ANNDELTA_PARMNUM | sv*_anndelta |
SV_USERPATH_PARMNUM | sv*_userpath |
SV_ULIST_MTIME_PARMNUM | sv*_ulist_mtime |
SV_GLIST_MTIME_PARMNUM | sv*_glist_mtime |
SV_ALIST_MTIME_PARMNUM | sv*_alist_mtime |
SV_ALERTS_PARMNUM | sv*_alerts |
SV_SECURITY_PARMNUM | sv*_security |
SV_NUMADMIN_PARMNUM | sv*_numadmin |
SV_LANMASK_PARMNUM | sv*_lanmask |
SV_GUESTACC_PARMNUM | sv*_guestacc |
SV_CHDEVQ_PARMNUM | sv*_chdevq |
SV_CHDEVJOBS_PARMNUM | sv*_chdevjobs |
SV_CONNECTIONS_PARMNUM | sv*_connections |
SV_SHARES_PARMNUM | sv*_shares |
SV_OPENFILES_PARMNUM | sv*_openfiles |
SV_SESSOPENS_PARMNUM | sv*_sessopens |
SV_SESSVCS_PARMNUM | sv*_sessvcs |
SV_SESSREQS_PARMNUM | sv*_sessreqs |
SV_OPENSEARCH_PARMNUM | sv*_opensearch |
SV_ACTIVELOCKS_PARMNUM | sv*_activelocks |
SV_NUMREQBUF_PARMNUM | sv*_numreqbuf |
SV_SIZREQBUF_PARMNUM | sv*_sizreqbuf |
SV_NUMBIGBUF_PARMNUM | sv*_numbigbuf |
SV_NUMFILETASKS_PARMNUM | sv*_numfiletasks |
SV_ALERTSCHED_PARMNUM | sv*_alertsched |
SV_ERRORALERT_PARMNUM | sv*_erroralert |
SV_LOGONALERT_PARMNUM | sv*_logonalert |
SV_ACCESSALERT_PARMNUM | sv*_accessalert |
SV_DISKALERT_PARMNUM | sv*_diskalert |
SV_NETIOALERT_PARMNUM | sv*_netioalert |
SV_MAXAUDITSZ_PARMNUM | sv*_maxauditsz |
SV_SRVHEURISTICS_PARMNUM | sv*_srvheuristics |
SV_TIMESOURCE_PARMNUM | sv*_timesource |
示例
以下代码示例演示如何调用 NetServerSetInfo 函数。 此示例调用 NetServerSetInfo,将 级别 参数指定为 1005 (设置SERVER_INFO_1005 结构的 sv1005_comment 成员所需的 ) 。
#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[])
{
DWORD dwLevel = 1005;
SERVER_INFO_1005 si;
NET_API_STATUS nStatus;
if (argc != 3)
{
fwprintf(stderr, L"Usage: %s \\\\ServerName Comment\n", argv[0]);
exit(1);
}
//
// Fill in SERVER_INFO_1005 structure member.
//
si.sv1005_comment = (LPTSTR) argv[2];
//
// Call the NetServerSetInfo function,
// specifying level 1005.
//
nStatus = NetServerSetInfo(argv[1],
dwLevel,
(LPBYTE)&si,
NULL);
//
// Display the result of the call.
//
if (nStatus == NERR_Success)
fwprintf(stderr, L"Comment reset\n", argv[2]);
else
fprintf(stderr, "A system error has occurred: %d\n", nStatus);
return 0;
}
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | lmserver.h (包括 Lm.h) |
Library | Netapi32.lib |
DLL | Netapi32.dll |