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
데이터를 지정하는 버퍼에 대한 포인터입니다. 이 데이터의 형식은 수준 매개 변수의 값에 따라 달라집니다. 자세한 내용은 네트워크 관리 함수 버퍼를 참조하세요.
[out] parm_err
ERROR_INVALID_PARAMETER 오류를 일으키는 공유 정보 구조의 첫 번째 멤버의 인덱스를 수신하는 값에 대한 포인터입니다. 이 매개 변수가 NULL이면 인덱스가 오류로 반환되지 않습니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
반환 값
함수가 성공하면 반환 값이 NERR_Success.
함수가 실패하면 반환 값은 다음 오류 코드 중 하나일 수 있습니다.
반환 코드 | 설명 |
---|---|
|
사용자는 요청한 정보에 대한 액세스 권한이 없습니다. |
|
level 매개 변수에 지정된 값이 잘못되었습니다. |
|
지정된 매개 변수가 잘못되었습니다. 자세한 내용은 아래 설명 부분을 참조하십시오. |
|
공유 이름이 없습니다. |
설명
이 함수는 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 |