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
関数パラメーターの 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

こちらもご覧ください

NetWkstaGetInfo

NetWkstaUserGetInfo

NetWkstaUserSetInfo

ネットワーク管理機能

ネットワーク管理の概要

ワークステーションとワークステーションのユーザー機能