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
データの情報レベルを指定します。 このパラメーターには、次の値のいずれかを指定できます。
値 | 説明 |
---|---|
|
リソースの名前と種類、リソースに関連付けられているコメントなど、共有リソースに関する情報を指定します。 buf パラメーターは、SHARE_INFO_1構造体を指します。 |
|
リソースの名前、種類とアクセス許可、パスワード、接続数など、共有リソースに関する情報を指定します。 buf パラメーターは、SHARE_INFO_2構造体を指します。 |
|
リソースの名前と種類、必要なアクセス許可、接続の数、およびその他の関連情報など、共有リソースに関する情報を指定します。 buf パラメーターは、SHARE_INFO_502構造体を指します。 |
|
共有リソースの名前を指定します。 buf パラメーターは、SHARE_INFO_503構造体を指します。 shi503_servernameを除くこの構造体のすべてのメンバーは、NetShareSetInfo 関数によって無視されます。
Windows Server 2003 および Windows XP: この情報レベルはサポートされていません。 |
|
共有リソースに関連付けられているコメントを指定します。 buf パラメーターは、SHARE_INFO_1004構造体を指します。 |
|
共有リソースを記述するフラグのセットを指定します。 buf パラメーターは、SHARE_INFO_1005構造体を指します。 |
|
共有リソースが対応できる同時接続の最大数を指定します。 buf パラメーターは、SHARE_INFO_1006構造体を指します。 |
|
指定した共有に関連付けられている SECURITY_DESCRIPTOR を指定します。 buf パラメーターは、SHARE_INFO_1501構造体を指します。 |
[in] buf
データを指定するバッファーへのポインター。 このデータの形式は、 level パラメーターの値によって異なります。 詳細については、「 ネットワーク管理関数バッファー」を参照してください。
[out] parm_err
ERROR_INVALID_PARAMETER エラーの原因となる共有情報構造体の最初のメンバーのインデックスを受け取る値へのポインター。 このパラメーターが NULL の場合、エラー時にインデックスは返されません。 詳細については、「解説」を参照してください。
戻り値
関数が成功した場合、戻り値は NERR_Success。
関数が失敗した場合、戻り値には次のいずれかのエラー コードを指定できます。
リターン コード | 説明 |
---|---|
|
ユーザーには、要求された情報へのアクセス権がありません。 |
|
level パラメーターに指定された値が無効です。 |
|
指定されたパラメーターが無効です。 詳細については、「解説」を参照してください。 |
|
共有名が存在しません。 |
解説
この関数は、サーバー メッセージ ブロック (SMB) 共有にのみ適用されます。 分散ファイル システム (DFS) や WebDAV 共有などの他の種類の共有では、すべての種類の共有をサポートする Windows ネットワーク (WNet) 関数を使用します。
管理者または Power Users ローカル グループのメンバー、または Print または Server Operator グループ メンバーシップを持つメンバーのみが、 NetShareSetInfo 関数を正常に実行できます。 印刷演算子は、プリンター共有に関する情報のみを設定できます。
NetShareSetInfo 関数がERROR_INVALID_PARAMETERを返す場合は、parm_err パラメーターを使用して、共有情報構造体の最初のメンバーが無効であることを示すことができます。 (共有情報構造は SHARE_INFO_ で始まり、その形式は level パラメーターで指定されます)。次の表に、 parm_err パラメーターで返すことができる値と、エラーが発生している対応する構造体メンバーを示します。 (プレフィックス shi* は、メンバーが複数のプレフィックス (例: shi2 や shi502_) で始めることができることを示します。
値 | メンバー |
---|---|
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 |