Функция 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 Networking (WNet), которые поддерживают все типы общих папок.
Функцию NetShareSetInfo могут успешно выполнять только члены локальной группы "Администраторы" или "Опытные пользователи", а также члены группы "Операторы печати" или "Операторы сервера". Оператор печати может задавать сведения только об общих папках принтера.
Если функция NetShareSetInfo возвращает ERROR_INVALID_PARAMETER, можно использовать параметр parm_err , чтобы указать недопустимый первый элемент структуры сведений об общем ресурсе. (Структура сведений об общем ресурсе начинается с SHARE_INFO_ и ее формат задается параметром уровня .) В следующей таблице перечислены значения, которые могут быть возвращены в параметре parm_err и соответствующем элементе структуры, который находится в ошибке. (Префикс shi* указывает, что элемент может начинаться с нескольких префиксов, например shi2 или shi502_.)
Значение | Член |
---|---|
SHARE_NETNAME_PARMNUM | shi*_netname |
SHARE_TYPE_PARMNUM | ши*_type |
SHARE_REMARK_PARMNUM | ши-_remark |
SHARE_PERMISSIONS_PARMNUM | shi*_permissions |
SHARE_MAX_USES_PARMNUM | shi*_max_uses |
SHARE_CURRENT_USES_PARMNUM | shi*_current_uses |
SHARE_PATH_PARMNUM | ши*_path |
SHARE_PASSWD_PARMNUM | ши-_passwd |
SHARE_FILE_SD_PARMNUM | ши*_security_descriptor |
При программировании для Active Directory вы можете вызвать определенные методы интерфейса службы Active Directory (ADSI) для достижения тех же функциональных возможностей, которые можно достичь, вызвав функции общего ресурса управления сетью. Дополнительные сведения см. в разделе IADsFileShare.
Если для параметра уровня задано значение 503, удаленный сервер, указанный в shi503_servername член структуры SHARE_INFO_503 , должен быть привязан к транспортному протоколу с помощью функции 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 |
Header | lmshare.h (включая Lm.h) |
Библиотека | Netapi32.lib |
DLL | Netapi32.dll |