NetShareAdd
От: jsmax  
Дата: 19.05.05 13:40
Оценка:
Здраствуйте ... Вот попал на этот прекрасный форум и хочу поделится своей проблемой ...

Значит так, изпользую я функцию 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 ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.