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

데이터를 지정하는 버퍼에 대한 포인터입니다. 이 데이터의 형식은 수준 매개 변수의 값에 따라 달라집니다. 자세한 내용은 네트워크 관리 함수 버퍼를 참조하세요.

[out] parm_err

ERROR_INVALID_PARAMETER 오류를 일으키는 공유 정보 구조의 첫 번째 멤버의 인덱스를 수신하는 값에 대한 포인터입니다. 이 매개 변수가 NULL이면 인덱스가 오류로 반환되지 않습니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

반환 값

함수가 성공하면 반환 값이 NERR_Success.

함수가 실패하면 반환 값은 다음 오류 코드 중 하나일 수 있습니다.

반환 코드 설명
ERROR_ACCESS_DENIED
사용자는 요청한 정보에 대한 액세스 권한이 없습니다.
ERROR_INVALID_LEVEL
level 매개 변수에 지정된 값이 잘못되었습니다.
ERROR_INVALID_PARAMETER
지정된 매개 변수가 잘못되었습니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
NERR_NetNameNotFound
공유 이름이 없습니다.

설명

이 함수는 SMB(서버 메시지 블록) 공유에만 적용됩니다. DFS(분산 파일 시스템) 또는 WebDAV 공유와 같은 다른 유형의 공유의 경우 모든 유형의 공유 를 지원하는 WNet(Windows 네트워킹) 함수를 사용합니다.

Administrators 또는 Power Users 로컬 그룹의 멤버 또는 인쇄 또는 서버 운영자 그룹 멤버 자격이 있는 멤버만 NetShareSetInfo 함수를 성공적으로 실행할 수 있습니다. 인쇄 연산자는 프린터 공유에 대한 정보만 설정할 수 있습니다.

NetShareSetInfo 함수가 ERROR_INVALID_PARAMETER 반환하는 경우 parm_err 매개 변수를 사용하여 잘못된 공유 정보 구조의 첫 번째 멤버를 나타낼 수 있습니다. (공유 정보 구조는 SHARE_INFO_ 시작하며 해당 형식은 수준 매개 변수에 의해 지정됩니다.) 다음 표에서는 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를 프로그래밍하는 경우 특정 ADSI(Active Directory Service Interface) 메서드를 호출하여 네트워크 관리 공유 함수를 호출하여 달성할 수 있는 동일한 기능을 달성할 수 있습니다. 자세한 내용은 IADsFileShare를 참조하세요.

level 매개 변수에 대해 503을 지정한 경우 SHARE_INFO_503 구조체의 shi503_servername 멤버에 지정된 원격 서버가 NetServerTransportAddEx 함수를 사용하여 전송 프로토콜에 바인딩되어야 합니다. NetServerTransportAddEx 호출에서 수준 매개 변수에 대해 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(Lm.h 포함)
라이브러리 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