NetServerSetInfo 関数 (lmserver.h)
NetServerSetInfo 関数は、サーバーの操作パラメーターを設定します。個別またはまとめて設定できます。 情報は、システムが再初期化された後も有効な状態を維持できるように保存されます。
構文
NET_API_STATUS NET_API_FUNCTION NetServerSetInfo(
[in] LMSTR servername,
[in] DWORD level,
[in] LPBYTE buf,
[out] LPDWORD ParmError
);
パラメーター
[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 マネージャー システムの制限に基づいて有効です。
[in] buf
サーバー情報を受け取るバッファーへのポインター。 このデータの形式は 、level パラメーターの値によって異なります。 詳細については、「 ネットワーク管理機能バッファー」を参照してください。
[out] ParmError
ERROR_INVALID_PARAMETER エラーの原因となるサーバー情報構造体の最初のメンバーのインデックスを受け取る値へのポインター。 このパラメーターが NULL の場合、エラー時にインデックスは返されません。 詳細については、「解説」を参照してください。
戻り値
関数が成功した場合、戻り値はNERR_Success。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
ユーザーには、要求された情報へのアクセス権がありません。 |
|
level パラメーターに指定された値が無効です。 |
|
指定されたパラメーターが無効です。 詳細については、「解説」を参照してください。 |
|
十分なメモリがありません。 |
解説
NetServerSetInfo 関数を正常に実行できるのは、Administrators または Server Operators ローカル グループのメンバーだけです。
Active Directory をプログラミングしている場合は、特定の Active Directory サービス インターフェイス (ADSI) メソッドを呼び出して、ネットワーク管理サーバー関数を呼び出すことで実現できるのと同じ機能を実現できる場合があります。 詳細については、「 IADsComputer」を参照してください。
NetServerSetInfo 関数がERROR_INVALID_PARAMETERを返す場合は、ParmError パラメーターを使用して、サーバー情報構造の最初のメンバーが無効であることを示すことができます。 (サーバー情報構造は SERVER_INFO_ で始まり、その形式は level パラメーターで指定されます)。次の表に、 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 を呼び出し、level パラメーターを 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 (Include Lm.h) |
Library | Netapi32.lib |
[DLL] | Netapi32.dll |