3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS system libraries
5 * FILE: lib/advapi32/sec/sid.c
6 * PURPOSE: Security ID functions
10 #include <ntdll/rtl.h>
15 AllocateLocallyUniqueId(PLUID Luid)
19 Status = NtAllocateLocallyUniqueId(Luid);
20 if (!NT_SUCCESS(Status))
22 SetLastError(RtlNtStatusToDosError(Status));
29 AllocateAndInitializeSid (
30 PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
31 BYTE nSubAuthorityCount,
32 DWORD dwSubAuthority0,
33 DWORD dwSubAuthority1,
34 DWORD dwSubAuthority2,
35 DWORD dwSubAuthority3,
36 DWORD dwSubAuthority4,
37 DWORD dwSubAuthority5,
38 DWORD dwSubAuthority6,
39 DWORD dwSubAuthority7,
45 Status = RtlAllocateAndInitializeSid (pIdentifierAuthority,
56 if (!NT_SUCCESS(Status))
58 SetLastError (RtlNtStatusToDosError (Status));
68 DWORD nDestinationSidLength,
75 Status = RtlCopySid (nDestinationSidLength,
78 if (!NT_SUCCESS(Status))
80 SetLastError (RtlNtStatusToDosError (Status));
94 return RtlEqualPrefixSid (pSid1, pSid2);
104 return RtlEqualSid (pSid1, pSid2);
113 return RtlFreeSid (pSid);
122 return (DWORD)RtlLengthSid (pSid);
125 PSID_IDENTIFIER_AUTHORITY
127 GetSidIdentifierAuthority (
131 return RtlIdentifierAuthoritySid (pSid);
136 GetSidLengthRequired (
137 UCHAR nSubAuthorityCount
140 return (DWORD)RtlLengthRequiredSid (nSubAuthorityCount);
150 return (PDWORD)RtlSubAuthoritySid (pSid, nSubAuthority);
155 GetSidSubAuthorityCount (
159 return RtlSubAuthorityCountSid (pSid);
166 PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
167 BYTE nSubAuthorityCount
172 Status = RtlInitializeSid (Sid,
173 pIdentifierAuthority,
175 if (!NT_SUCCESS(Status))
177 SetLastError (RtlNtStatusToDosError (Status));
186 IsValidSid(PSID pSid)
188 return((WINBOOL)RtlValidSid(pSid));
193 LookupAccountNameA(LPCSTR lpSystemName,
194 LPCSTR lpAccountName,
198 LPDWORD cbDomainName,
206 LookupAccountNameW(LPCWSTR lpSystemName,
207 LPCWSTR lpAccountName,
211 LPDWORD cbDomainName,
219 LookupAccountSidA(LPCSTR lpSystemName,
223 LPSTR ReferencedDomainName,
224 LPDWORD cbReferencedDomainName,
232 LookupAccountSidW(LPCWSTR lpSystemName,
236 LPWSTR ReferencedDomainName,
237 LPDWORD cbReferencedDomainName,