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。
関数が失敗した場合、戻り値には次のいずれかのエラー コードを指定できます。
リターン コード | 説明 |
---|---|
|
ユーザーには、要求された情報へのアクセス権がありません。 |
|
関数パラメーターの 1 つが無効です。 詳細については、「解説」を参照してください。 |
注釈
リモート サーバーで NetWkstaSetInfo 関数を正常に実行できるのは、Administrators グループのメンバーだけです。
NetWkstaSetInfo 関数は、ローカル システムまたはリモート システム上のワークステーション サービスを呼び出します。 NetWkstaSetInfo 関数を使用して実際に変更できるのは、WKSTA_INFO_502構造体のメンバーの数に制限があります。 ワークステーション・サービスによって無視されるメンバーが設定されている場合、エラーは返されません。 ワークステーション サービスは、主にレジストリの設定を使用して構成されます。
NetWkstaSetInfo 関数の代わりに NetWkstaUserSetInfo 関数を使用して、ローカル システムの構成情報を設定できます。 NetWkstaUserSetInfo 関数は、ローカル セキュリティ機関 (LSA) を呼び出します。
NetWkstaSetInfo 関数がERROR_INVALID_PARAMETERを返す場合は、parm_err パラメーターを使用して、ワークステーション情報構造体の最初のメンバーが無効であることを示すことができます。 (ワークステーション情報構造はWKSTA_INFO_で始まり、その形式は level パラメーターで指定されます。次の表に、 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 |
ワークステーション サービス パラメーターの設定は、LAN マネージャーで以前に使用した 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 |
ヘッダー | lmwksta.h (Lm.h を含む) |
Library | Netapi32.lib |
[DLL] | Netapi32.dll |