Здравствуйте, Alex Fedotov, Вы писали:
AF>Ну а как LookupPrivilegeName объявлена в Delphi?
Сорри, неправильно свой код привел:
ucPrivilegeName:array[0..255] of char;
PrivilegeNameSize:cardinal;
PrivilegeNameSize:=sizeof(ucPrivilegeName);
if not LookupPrivilegeName( nil, buffer.Privileges[i].Luid, PChar(@ucPrivilegeName), PrivilegeNameSize) then
begin
raise Exception.Create(SysErrorMessage(GetLastError));
end;
А функция объявлена так: LookupPrivilegeName(lpSystem Pchar; LUID Int64; var lpName Pchar; var cbName Cardinal);
пробовал и так:
ucPrivilegeName: Pchar;
PrivilegeNameSize: cardinal;
PrivilegeNameSize:=0; //sizeof(PChar) - как-то не очень имеет смысл, по-моему... Хотя тоже пробовал :-)
if not LookupPrivilegeName( nil, buffer.Privileges[i].Luid, ucPrivilegeName, PrivilegeNameSize) then
begin
raise Exception.Create(SysErrorMessage(GetLastError));
end;
Все время та же лабуда — "указанная привилегия не существует". Я нутром чуваствую, что проблема в типах, но как подобрать??? Хрен его знает...