2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: Security Account Manager (SAM) Server
4 * FILE: reactos/dll/win32/lsasrv/utils.c
5 * PURPOSE: Utility functions
7 * PROGRAMMERS: Eric Kohl
14 /* FUNCTIONS ***************************************************************/
17 LsapLoadString(HINSTANCE hInstance
,
28 /* Use loword (incremented by 1) as resourceid */
29 hrsrc
= FindResourceW(hInstance
,
30 MAKEINTRESOURCEW((LOWORD(uId
) >> 4) + 1),
35 hmem
= LoadResource(hInstance
, hrsrc
);
39 p
= LockResource(hmem
);
40 string_num
= uId
& 0x000f;
41 for (i
= 0; i
< string_num
; i
++)
44 i
= min(nBufferMax
- 1, *p
);
47 memcpy(lpBuffer
, p
+ 1, i
* sizeof(WCHAR
));
64 LsapGetResourceStringLengthEx(
65 _In_ HINSTANCE hInstance
,
67 _In_ USHORT usLanguage
)
74 /* Use loword (incremented by 1) as resourceid */
75 // hrsrc = FindResourceExW(hInstance,
76 // MAKEINTRESOURCEW((LOWORD(uId) >> 4) + 1),
79 hrsrc
= FindResourceW(hInstance
,
80 MAKEINTRESOURCEW((LOWORD(uId
) >> 4) + 1),
85 hmem
= LoadResource(hInstance
, hrsrc
);
89 p
= LockResource(hmem
);
90 string_num
= uId
& 0x000f;
91 for (i
= 0; i
< string_num
; i
++)
100 _In_ HINSTANCE hInstance
,
102 _In_ USHORT usLanguage
,
103 _Out_ LPWSTR lpBuffer
,
104 _Out_ INT nBufferMax
)
112 /* Use loword (incremented by 1) as resourceid */
113 // hrsrc = FindResourceExW(hInstance,
114 // MAKEINTRESOURCEW((LOWORD(uId) >> 4) + 1),
115 // (LPWSTR)RT_STRING,
117 hrsrc
= FindResourceW(hInstance
,
118 MAKEINTRESOURCEW((LOWORD(uId
) >> 4) + 1),
123 hmem
= LoadResource(hInstance
, hrsrc
);
127 p
= LockResource(hmem
);
128 string_num
= uId
& 0x000f;
129 for (i
= 0; i
< string_num
; i
++)
132 i
= min(nBufferMax
- 1, *p
);
135 memcpy(lpBuffer
, p
+ 1, i
* sizeof(WCHAR
));
156 ULONG Rids
[8] = {0, 0, 0, 0, 0, 0, 0, 0};
161 RidCount
= *RtlSubAuthorityCountSid(SrcSid
);
165 for (i
= 0; i
< RidCount
; i
++)
166 Rids
[i
] = *RtlSubAuthoritySid(SrcSid
, i
);
168 Rids
[RidCount
] = Rid
;
171 RtlAllocateAndInitializeSid(RtlIdentifierAuthoritySid(SrcSid
),