1 /* $Id: sid.c,v 1.10 2004/02/25 14:25:11 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
18 AllocateLocallyUniqueId(PLUID Luid
)
22 Status
= NtAllocateLocallyUniqueId(Luid
);
23 if (!NT_SUCCESS(Status
))
25 SetLastError(RtlNtStatusToDosError(Status
));
36 AllocateAndInitializeSid (
37 PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority
,
38 BYTE nSubAuthorityCount
,
39 DWORD dwSubAuthority0
,
40 DWORD dwSubAuthority1
,
41 DWORD dwSubAuthority2
,
42 DWORD dwSubAuthority3
,
43 DWORD dwSubAuthority4
,
44 DWORD dwSubAuthority5
,
45 DWORD dwSubAuthority6
,
46 DWORD dwSubAuthority7
,
52 Status
= RtlAllocateAndInitializeSid (pIdentifierAuthority
,
63 if (!NT_SUCCESS(Status
))
65 SetLastError (RtlNtStatusToDosError (Status
));
79 DWORD nDestinationSidLength
,
86 Status
= RtlCopySid (nDestinationSidLength
,
89 if (!NT_SUCCESS(Status
))
91 SetLastError (RtlNtStatusToDosError (Status
));
109 return RtlEqualPrefixSid (pSid1
, pSid2
);
122 return RtlEqualSid (pSid1
, pSid2
);
135 return RtlFreeSid (pSid
);
148 return (DWORD
)RtlLengthSid (pSid
);
155 PSID_IDENTIFIER_AUTHORITY
157 GetSidIdentifierAuthority (
161 return RtlIdentifierAuthoritySid (pSid
);
170 GetSidLengthRequired (
171 UCHAR nSubAuthorityCount
174 return (DWORD
)RtlLengthRequiredSid (nSubAuthorityCount
);
188 return (PDWORD
)RtlSubAuthoritySid (pSid
, nSubAuthority
);
197 GetSidSubAuthorityCount (
201 return RtlSubAuthorityCountSid (pSid
);
212 PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority
,
213 BYTE nSubAuthorityCount
218 Status
= RtlInitializeSid (Sid
,
219 pIdentifierAuthority
,
221 if (!NT_SUCCESS(Status
))
223 SetLastError (RtlNtStatusToDosError (Status
));
235 IsValidSid(PSID pSid
)
237 return((BOOL
)RtlValidSid(pSid
));