次の方法で共有


NetShareSetInfo 関数 (lmshare.h)

共有リソースのパラメーターを設定します。

構文

NET_API_STATUS NET_API_FUNCTION NetShareSetInfo(
  [in]  LMSTR   servername,
  [in]  LMSTR   netname,
  [in]  DWORD   level,
  [in]  LPBYTE  buf,
  [out] LPDWORD parm_err
);

パラメーター

[in] servername

関数を実行するリモート サーバーの DNS または NetBIOS 名を指定する文字列へのポインター。 このパラメーターが NULL の場合は、ローカル コンピューターが使用されます。

[in] netname

情報を設定する共有の名前を指定する文字列へのポインター。

[in] level

データの情報レベルを指定します。 このパラメーターには、次の値のいずれかを指定できます。

説明
1
リソースの名前と種類、リソースに関連付けられているコメントなど、共有リソースに関する情報を指定します。 buf パラメーターは、SHARE_INFO_1構造体を指します。
2
リソースの名前、種類とアクセス許可、パスワード、接続数など、共有リソースに関する情報を指定します。 buf パラメーターは、SHARE_INFO_2構造体を指します。
502
リソースの名前と種類、必要なアクセス許可、接続の数、およびその他の関連情報など、共有リソースに関する情報を指定します。 buf パラメーターは、SHARE_INFO_502構造体を指します。
503
共有リソースの名前を指定します。 buf パラメーターは、SHARE_INFO_503構造体を指します。 shi503_servernameを除くこの構造体のすべてのメンバーは、NetShareSetInfo 関数によって無視されます。

Windows Server 2003 および Windows XP: この情報レベルはサポートされていません。

1004
共有リソースに関連付けられているコメントを指定します。 buf パラメーターは、SHARE_INFO_1004構造体を指します。
1005
共有リソースを記述するフラグのセットを指定します。 buf パラメーターは、SHARE_INFO_1005構造体を指します。
1006
共有リソースが対応できる同時接続の最大数を指定します。 buf パラメーターは、SHARE_INFO_1006構造体を指します。
1501
指定した共有に関連付けられている SECURITY_DESCRIPTOR を指定します。 buf パラメーターは、SHARE_INFO_1501構造体を指します。

[in] buf

データを指定するバッファーへのポインター。 このデータの形式は、 level パラメーターの値によって異なります。 詳細については、「 ネットワーク管理関数バッファー」を参照してください。

[out] parm_err

ERROR_INVALID_PARAMETER エラーの原因となる共有情報構造体の最初のメンバーのインデックスを受け取る値へのポインター。 このパラメーターが NULL の場合、エラー時にインデックスは返されません。 詳細については、「解説」を参照してください。

戻り値

関数が成功した場合、戻り値は NERR_Success

関数が失敗した場合、戻り値には次のいずれかのエラー コードを指定できます。

リターン コード 説明
ERROR_ACCESS_DENIED
ユーザーには、要求された情報へのアクセス権がありません。
ERROR_INVALID_LEVEL
level パラメーターに指定された値が無効です。
ERROR_INVALID_PARAMETER
指定されたパラメーターが無効です。 詳細については、「解説」を参照してください。
NERR_NetNameNotFound
共有名が存在しません。

解説

この関数は、サーバー メッセージ ブロック (SMB) 共有にのみ適用されます。 分散ファイル システム (DFS) や WebDAV 共有などの他の種類の共有では、すべての種類の共有をサポートする Windows ネットワーク (WNet) 関数を使用します。

管理者または Power Users ローカル グループのメンバー、または Print または Server Operator グループ メンバーシップを持つメンバーのみが、 NetShareSetInfo 関数を正常に実行できます。 印刷演算子は、プリンター共有に関する情報のみを設定できます。

NetShareSetInfo 関数がERROR_INVALID_PARAMETERを返す場合は、parm_err パラメーターを使用して、共有情報構造体の最初のメンバーが無効であることを示すことができます。 (共有情報構造は SHARE_INFO_ で始まり、その形式は level パラメーターで指定されます)。次の表に、 parm_err パラメーターで返すことができる値と、エラーが発生している対応する構造体メンバーを示します。 (プレフィックス shi* は、メンバーが複数のプレフィックス (例: shi2shi502_) で始めることができることを示します。

メンバー
SHARE_NETNAME_PARMNUM shi*_netname
SHARE_TYPE_PARMNUM shi*_type
SHARE_REMARK_PARMNUM shi*_remark
SHARE_PERMISSIONS_PARMNUM shi*_permissions
SHARE_MAX_USES_PARMNUM shi*_max_uses
SHARE_CURRENT_USES_PARMNUM shi*_current_uses
SHARE_PATH_PARMNUM shi*_path
SHARE_PASSWD_PARMNUM shi*_passwd
SHARE_FILE_SD_PARMNUM shi*_security_descriptor
 

Active Directory のプログラミングを行っている場合は、特定の Active Directory サービス インターフェイス (ADSI) メソッドを呼び出して、ネットワーク管理共有関数を呼び出すことで実現できるのと同じ機能を実現できる場合があります。 詳細については、「 IADsFileShare」を参照してください。

level パラメーターに 503 を指定した場合、SHARE_INFO_503構造体の shi503_servername メンバーで指定されたリモート サーバーは、NetServerTransportAddEx 関数を使用してトランスポート プロトコルにバインドされている必要があります。 NetServerTransportAddEx の呼び出しでは、level パラメーターに 2 または 3 が指定されている必要があり、トランスポート プロトコルのSERVER_TRANSPORT_INFO_2構造体でSVTI2_SCOPED_NAME フラグが指定されている必要があります。

次のコード サンプルは、 NetShareSetInfo 関数の呼び出しを使用して、共有リソースに関連付けられているコメントを設定する方法を示しています。 これを行うには、サンプルでは情報レベル 1004 (SHARE_INFO_1004) を指定します。

#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <stdio.h>
#include <lm.h>
#pragma comment(lib, "Netapi32.lib")

void wmain( int argc, TCHAR *argv[ ])
{
   SHARE_INFO_1004 p;
   NET_API_STATUS res;
   DWORD parm_err = 0;

   if(argc<4)
      printf("Usage: SetInfo server share \"remark\"\n");
   else
   {
      //
      // Fill in SHARE_INFO_1004 structure member.
      //
      p.shi1004_remark=argv[3];
      //
      // Call the NetShareSetInfo function,
      //  specifying information level 1004.
      //
      res=NetShareSetInfo(argv[1], argv[2], 1004, (LPBYTE)&p, &parm_err);
      //
      // Display the result of the call.
      //
      if(res==0)
         printf("Remark set.\n");
      else
         printf("Error: %u\tparmerr=%u\n", res, parm_err);
   }
   return;
}

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー lmshare.h (include Lm.h)
Library Netapi32.lib
[DLL] Netapi32.dll

関連項目

NetServerTransportAddEx

NetShareGetInfo

ネットワーク管理機能

ネットワーク管理の概要

ネットワーク共有関数

SHARE_INFO_1

SHARE_INFO_1004

SHARE_INFO_1005

SHARE_INFO_1006

SHARE_INFO_1501

SHARE_INFO_2

SHARE_INFO_502

SHARE_INFO_503