1 /* $Id: sid.c,v 1.3 2001/06/17 20:19:45 ekohl Exp $
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
));
190 return (WINBOOL
)RtlValidSid (pSid
);
200 LPSTR ReferencedDomainName
,
201 LPDWORD cbReferencedDomainName
,
212 LPCWSTR lpSystemName
,
216 LPWSTR ReferencedDomainName
,
217 LPDWORD cbReferencedDomainName
,