Доброго времени суток!
Код такого типа:
BOOL GrantPrivilege()
{
wchar_t * Admin=L"Administrator";
NTSTATUS Status;
LSA_HANDLE hPolicy;
LSA_UNICODE_STRING SystemName;
LSA_UNICODE_STRING UserRight;
PLSA_UNICODE_STRING pSystemName = NULL;
LSA_OBJECT_ATTRIBUTES ObjAttr;
Status = LsaOpenPolicy(NULL, &ObjAttr,
POLICY_LOOKUP_NAMES|POLICY_CREATE_ACCOUNT,
&hPolicy);
PLSA_UNICODE_STRING pPrivs;
ULONG cPrivs = 0;
LsaEnumerateAccountRights(hPolicy,lookupaccntname(Admin),&pPrivs,&cPrivs);
wsprintf(bufa,"%u",cPrivs);
MessageBox(NULL,bufa,"",MB_OK);
LsaClose(hPolicy);
if (!LSA_SUCCESS(Status))
return SetLastError(LsaNtStatusToWinError(Status)), FALSE;
return TRUE;
}
Функция, получающая SID:
SID * lookupaccntname(LPCWSTR username)
{
//wchar_t * GroupName=pBufExt[lResult].lgrpi0_name;
//wchar_t * ReferencedDomainName;
//int cchReferencedDomainName=1000;
wsprintf(bufa,"%S",UserName);
DWORD SidLen=0;
DWORD DomenLen=0;
SID_NAME_USE SidNameUse;
LookupAccountName(NULL,(LPCTSTR)&bufa,NULL,&SidLen,NULL,&DomenLen,&SidNameUse);
SID* sid=(SID*)new char[SidLen];
TCHAR* DomenName=(TCHAR*)new TCHAR[DomenLen];
lResult=LookupAccountName(NULL,(LPCTSTR)&bufa,sid,&SidLen,DomenName,&DomenLen,&SidNameUse);
return(sid);
}
Почему же в LsaEnumerateAccountRights возвращается ноль прав? Помогите, кто чем может

Заранее благодарен за помощь, Still Me, Merovingian
25.11.04 15:00: Перенесено модератором из 'C/C++' — Павел Кузнецов