Здраствуйте ... Вот попал на этот прекрасный форум и хочу поделится своей проблемой ...
Значит так, изпользую я функцию
NetShareAddNT (NetShareAdd из NETAPI32.DLL) ...
Написал аналог структуры
SHARE_INFO_2:
type
TShareInfo2 = packed record
shi2_netname : PWChar;
shi2_type : DWORD;
shi2_remark : PWChar;
shi2_permissions : DWORD;
shi2_max_uses : DWORD;
shi2_current_uses : DWORD;
shi2_path : PWChar;
shi2_passwd : PWChar;
end;
В продолжении:
var
ShareNT : TShareInfo2;
const
STYPE_DISKTREE = 0;
ACCESS_READ = $01;
Теперь заполняю структуру:
ShareNT.shi2_netname := 'My_Share';
ShareNT.shi2_type := STYPE_DISKTREE;
ShareNT.shi2_remark := nil;
ShareNT.shi2_permissions := ACCESS_READ;
ShareNT.shi2_max_uses := DWORD(-1);
ShareNT.shi2_current_uses := 0;
ShareNT.shi2_path := 'D:\My_Share';
ShareNT.shi2_passwd := nil;
Теперь вызов функции:
NetShareAddNT(nil,2,@ShareNT,nil);
Так вот, всё работает, шара создаётся, НО с правами на запись для всех ! А я ведь же поставил флаг ACCESS_READ ... Смотрел в lmshare.h, там он определён со значением $01 ... (как и у меня) ...
Вопрос: почему ?
All Rights Reserved ...