ReactOS  0.4.14-dev-337-gf981a68
samsrv.h
Go to the documentation of this file.
1 /*
2  * COPYRIGHT: See COPYING in the top level directory
3  * PROJECT: Security Account Manager (LSA) Server
4  * FILE: reactos/dll/win32/samsrv/samsrv.h
5  * PURPOSE: Common header file
6  *
7  * PROGRAMMERS: Eric Kohl
8  */
9 
10 #ifndef _SAMSRV_PCH_
11 #define _SAMSRV_PCH_
12 
13 #include <stdio.h>
14 #include <stdlib.h>
15 
16 #define WIN32_NO_STATUS
17 #define _INC_WINDOWS
18 #define COM_NO_WINDOWS_H
19 
20 #include <windef.h>
21 #include <winbase.h>
22 #include <winreg.h>
23 #define NTOS_MODE_USER
24 #include <ndk/kefuncs.h>
25 #include <ndk/obfuncs.h>
26 #include <ndk/rtlfuncs.h>
27 #include <ddk/ntsam.h>
28 #include <sddl.h>
29 #include <sam_s.h>
30 
31 #include <wine/debug.h>
33 
34 typedef enum _SAM_DB_OBJECT_TYPE
35 {
43 
44 typedef struct _SAM_DB_OBJECT
45 {
52  HANDLE MembersKeyHandle; // only used by Aliases
57 
58 #define SAMP_DB_SIGNATURE 0x87654321
59 
60 typedef struct _SAM_ALIAS_FIXED_DATA
61 {
66 
67 typedef struct _SAM_DOMAIN_FIXED_DATA
68 {
73  LARGE_INTEGER MaxPasswordAge; /* relative Time */
74  LARGE_INTEGER MinPasswordAge; /* relative Time */
75  LARGE_INTEGER ForceLogoff; /* relative Time */
76  LARGE_INTEGER LockoutDuration; /* relative Time */
88 
89 typedef struct _SAM_GROUP_FIXED_DATA
90 {
96 
97 typedef struct _SAM_USER_FIXED_DATA
98 {
116 
117 
122 
123 
124 /* alias.c */
125 
126 NTSTATUS
128  IN ULONG AliasId,
130  OUT PSAM_DB_OBJECT *AliasObject);
131 
132 NTSTATUS
134  IN PRPC_SID MemberId);
135 
136 NTSTATUS
137 NTAPI
139  IN PRPC_SID MemberId);
140 
141 NTSTATUS
143  OUT PULONG MemberCount,
144  OUT PSAMPR_SID_INFORMATION *MemberArray);
145 
146 NTSTATUS
148 
149 
150 /* database.c */
151 
152 NTSTATUS
154 
155 NTSTATUS
157  IN LPWSTR ContainerName,
159  IN ULONG RelativeId,
162  OUT PSAM_DB_OBJECT *DbObject);
163 
164 NTSTATUS
165 SampOpenDbObject(IN PSAM_DB_OBJECT ParentObject,
166  IN LPWSTR ContainerName,
168  IN ULONG RelativeId,
171  OUT PSAM_DB_OBJECT *DbObject);
172 
173 NTSTATUS
177  PSAM_DB_OBJECT *DbObject);
178 
179 NTSTATUS
181 
182 NTSTATUS
184 
185 NTSTATUS
187  LPWSTR AttributeName,
188  ULONG AttributeType,
190  ULONG AttributeSize);
191 
192 NTSTATUS
194  LPWSTR AttributeName,
195  PULONG AttributeType,
197  PULONG AttributeSize);
198 
199 NTSTATUS
201  LPWSTR AttributeName,
203 
204 NTSTATUS
206  LPWSTR AttributeName,
208 
209 /* domain.c */
210 
211 NTSTATUS
213  IN LPCWSTR lpContainerName,
215  IN ULONG ulRelativeId);
216 
217 NTSTATUS
219  IN LPCWSTR lpContainerName,
221 
222 NTSTATUS
225 
226 NTSTATUS
228  IN PRPC_SID MemberSid);
229 
230 NTSTATUS
232  IN ULONG ulRelativeId,
233  IN OUT PSID *AccountSid);
234 
235 /* group.h */
236 
237 NTSTATUS
239  IN ULONG GroupId,
241  OUT PSAM_DB_OBJECT *GroupObject);
242 
243 NTSTATUS
245  IN ULONG MemberId);
246 
247 NTSTATUS
249  IN ULONG MemberId);
250 
251 
252 /* registry.h */
253 
254 NTSTATUS
256 
257 NTSTATUS
258 SampRegCreateKey(IN HANDLE ParentKeyHandle,
262 
263 NTSTATUS
264 SampRegDeleteKey(IN HANDLE ParentKeyHandle,
265  IN LPCWSTR KeyName);
266 
267 NTSTATUS
269  IN ULONG Index,
270  IN ULONG Length,
271  OUT LPWSTR Buffer);
272 
273 NTSTATUS
274 SampRegOpenKey(IN HANDLE ParentKeyHandle,
278 
279 NTSTATUS
281  OUT PULONG SubKeyCount,
282  OUT PULONG ValueCount);
283 
284 NTSTATUS
287 
288 NTSTATUS
290  IN ULONG Index,
291  OUT LPWSTR Name,
292  IN OUT PULONG NameLength,
296 
297 NTSTATUS
303 
304 NTSTATUS
307  IN ULONG Type,
308  IN LPVOID Data,
310 
311 
312 /* samspc.c */
313 
314 VOID
316 
317 
318 /* security.c */
319 
320 NTSTATUS
322  OUT PULONG Size);
323 
324 NTSTATUS
326  OUT PULONG Size);
327 
328 NTSTATUS
330  OUT PULONG Size);
331 
332 NTSTATUS
334  OUT PULONG Size);
335 
336 NTSTATUS
338  OUT PULONG Size);
339 
340 NTSTATUS
341 SampCreateUserSD(IN PSID UserSid,
342  OUT PSECURITY_DESCRIPTOR *UserSd,
343  OUT PULONG Size);
344 
345 /* setup.c */
346 
347 BOOL
349 
350 
351 /* user.c */
352 
353 NTSTATUS
355  IN ULONG UserId,
357  OUT PSAM_DB_OBJECT *UserObject);
358 
359 NTSTATUS
361  IN ULONG GroupId,
363 
364 NTSTATUS
366  IN ULONG GroupId);
367 
368 NTSTATUS
370  IN ULONG UserId,
371  IN ULONG GroupId,
372  OUT PULONG GroupAttributes);
373 
374 NTSTATUS
376  IN ULONG UserId,
377  IN ULONG GroupId,
378  IN ULONG GroupAttributes);
379 
380 NTSTATUS
382 
383 NTSTATUS
385 
386 NTSTATUS
388  IN PENCRYPTED_NT_OWF_PASSWORD NtPassword,
389  IN BOOLEAN NtPasswordPresent,
390  IN PENCRYPTED_LM_OWF_PASSWORD LmPassword,
391  IN BOOLEAN LmPasswordPresent);
392 
393 NTSTATUS
395  IN OUT PSAMPR_LOGON_HOURS LogonHours);
396 
397 NTSTATUS
399  IN PSAMPR_LOGON_HOURS LogonHours);
400 
401 
402 /* utils.c */
403 
404 INT
406  UINT uId,
408  INT nBufferMax);
409 
410 BOOL
412 
413 PSID
414 AppendRidToSid(PSID SrcSid,
415  ULONG Rid);
416 
417 NTSTATUS
419  OUT PULONG Rid);
420 
421 NTSTATUS
423  IN USHORT MaxLength);
424 
425 
426 /* Undocumented advapi32 functions */
427 
428 NTSTATUS
429 WINAPI
431  LPSTR hash);
432 
433 NTSTATUS
434 WINAPI
436  LPBYTE hash);
437 
438 NTSTATUS
439 WINAPI
440 SystemFunction013(const BYTE *in,
441  const BYTE *key,
442  LPBYTE out);
443 
444 #endif /* _SAMSRV_PCH_ */
NTSTATUS SampCreateAccountDomainSD(OUT PSECURITY_DESCRIPTOR *DomainSd, OUT PULONG Size)
Definition: security.c:545
ULONG Signature
Definition: samsrv.h:46
RTL_RESOURCE SampResource
Definition: samsrv.c:28
ObjectType
Definition: metafile.c:80
USHORT CountryCode
Definition: samsrv.h:109
enum _SAM_DB_OBJECT_TYPE SAM_DB_OBJECT_TYPE
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING KeyName
Definition: ndis.h:4711
NTSTATUS SampRegDeleteKey(IN HANDLE ParentKeyHandle, IN LPCWSTR KeyName)
Definition: registry.c:71
#define IN
Definition: typedefs.h:38
struct _SAM_USER_FIXED_DATA SAM_USER_FIXED_DATA
WINE_DEFAULT_DEBUG_CHANNEL(samsrv)
NTSTATUS NTAPI SampRemoveMemberFromAlias(IN PSAM_DB_OBJECT AliasObject, IN PRPC_SID MemberId)
Definition: alias.c:111
BOOL SampIsSetupRunning(VOID)
Definition: utils.c:64
NTSTATUS SampCreateServerSD(OUT PSECURITY_DESCRIPTOR *ServerSd, OUT PULONG Size)
Definition: security.c:21
Type
Definition: Type.h:6
_SAM_DB_OBJECT_TYPE
Definition: samsrv.h:34
struct _SAM_DOMAIN_FIXED_DATA SAM_DOMAIN_FIXED_DATA
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
SAM_DB_OBJECT_TYPE ObjectType
Definition: samsrv.h:47
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
Definition: ndis.h:4711
NTSTATUS SampRemoveMemberFromGroup(IN PSAM_DB_OBJECT GroupObject, IN ULONG MemberId)
Definition: group.c:103
LARGE_INTEGER AccountExpires
Definition: samsrv.h:104
NTSTATUS SampRegCloseKey(IN OUT PHANDLE KeyHandle)
Definition: registry.c:26
NTSTATUS SampRemoveUserFromAllGroups(IN PSAM_DB_OBJECT UserObject)
Definition: user.c:319
struct _SAM_USER_FIXED_DATA * PSAM_USER_FIXED_DATA
LARGE_INTEGER LastBadPasswordTime
Definition: samsrv.h:105
NTSTATUS SampSetObjectAttributeString(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, PRPC_UNICODE_STRING String)
Definition: database.c:593
USHORT MinPasswordLength
Definition: samsrv.h:81
NTSTATUS SampDeleteAccountDbObject(PSAM_DB_OBJECT DbObject)
Definition: database.c:366
ULONG PrimaryGroupId
Definition: samsrv.h:107
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS SampGetObjectAttribute(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, PULONG AttributeType, LPVOID AttributeData, PULONG AttributeSize)
Definition: database.c:514
DOMAIN_SERVER_ENABLE_STATE DomainServerState
Definition: samsrv.h:84
LARGE_INTEGER DomainModifiedCount
Definition: samsrv.h:72
ENCRYPTED_NT_OWF_PASSWORD EmptyNtHash
Definition: samsrv.c:26
NTSTATUS SampRemoveGroupMembershipFromUser(IN PSAM_DB_OBJECT UserObject, IN ULONG GroupId)
Definition: user.c:108
static WCHAR String[]
Definition: stringtable.c:55
NTSTATUS SampOpenUserObject(IN PSAM_DB_OBJECT DomainObject, IN ULONG UserId, IN ACCESS_MASK DesiredAccess, OUT PSAM_DB_OBJECT *UserObject)
Definition: user.c:14
LARGE_INTEGER MinPasswordAge
Definition: samsrv.h:74
_In_ PVOID _Out_opt_ PULONG_PTR _Outptr_opt_ PCUNICODE_STRING * ObjectName
Definition: cmfuncs.h:62
NTSTATUS SampCreateUserSD(IN PSID UserSid, OUT PSECURITY_DESCRIPTOR *UserSd, OUT PULONG Size)
Definition: security.c:1433
char * LPSTR
Definition: xmlstorage.h:182
_In_ LPCSTR lpAccountName
Definition: winbase.h:2688
int32_t INT
Definition: typedefs.h:56
NTSTATUS SampCheckAccountName(IN PRPC_UNICODE_STRING AccountName, IN USHORT MaxLength)
Definition: utils.c:154
NTSTATUS SampGetLogonHoursAttribute(IN PSAM_DB_OBJECT UserObject, IN OUT PSAMPR_LOGON_HOURS LogonHours)
Definition: user.c:619
PSID AppendRidToSid(PSID SrcSid, ULONG Rid)
Definition: utils.c:103
NTSTATUS SampOpenDbObject(IN PSAM_DB_OBJECT ParentObject, IN LPWSTR ContainerName, IN LPWSTR ObjectName, IN ULONG RelativeId, IN SAM_DB_OBJECT_TYPE ObjectType, IN ACCESS_MASK DesiredAccess, OUT PSAM_DB_OBJECT *DbObject)
Definition: database.c:171
NTSTATUS WINAPI SystemFunction006(LPCSTR password, LPSTR hash)
Definition: crypt_lmhash.c:53
BOOLEAN UasCompatibilityRequired
Definition: samsrv.h:86
NTSTATUS SampAddMemberToAlias(IN PSAM_DB_OBJECT AliasObject, IN PRPC_SID MemberId)
Definition: alias.c:39
NTSTATUS SampRegQueryValue(IN HANDLE KeyHandle, IN LPCWSTR ValueName, OUT PULONG Type OPTIONAL, OUT LPVOID Data OPTIONAL, IN OUT PULONG DataLength OPTIONAL)
Definition: registry.c:332
struct _SAM_ALIAS_FIXED_DATA SAM_ALIAS_FIXED_DATA
NTSTATUS SampCheckAccountNameInDomain(IN PSAM_DB_OBJECT DomainObject, IN LPCWSTR lpAccountName)
Definition: domain.c:96
_In_ PUNICODE_STRING ValueName
Definition: cmfuncs.h:264
HANDLE MembersKeyHandle
Definition: samsrv.h:52
HINSTANCE hInstance
Definition: charmap.c:20
unsigned char * LPBYTE
Definition: typedefs.h:52
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
unsigned int BOOL
Definition: ntddk_ex.h:94
NTSTATUS SampRegDeleteValue(IN HANDLE KeyHandle, IN LPCWSTR ValueName)
Definition: registry.c:212
USHORT OperatorCount
Definition: samsrv.h:114
NTSTATUS WINAPI SystemFunction013(const BYTE *in, const BYTE *key, LPBYTE out)
Definition: sysfunc.c:383
NTSTATUS SampGetRidFromSid(IN PSID Sid, OUT PULONG Rid)
Definition: utils.c:138
struct _SAM_DB_OBJECT * PSAM_DB_OBJECT
ULONG PasswordProperties
Definition: samsrv.h:80
BOOL SampInitializeSAM(VOID)
Definition: setup.c:888
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
Definition: db.cpp:173
unsigned char BOOLEAN
NTSTATUS SampAddMemberToGroup(IN PSAM_DB_OBJECT GroupObject, IN ULONG MemberId)
Definition: group.c:39
NTSTATUS SampCreateDbObject(IN PSAM_DB_OBJECT ParentObject, IN LPWSTR ContainerName, IN LPWSTR ObjectName, IN ULONG RelativeId, IN SAM_DB_OBJECT_TYPE ObjectType, IN ACCESS_MASK DesiredAccess, OUT PSAM_DB_OBJECT *DbObject)
Definition: database.c:42
ULONG RefCount
Definition: samsrv.h:48
NTSTATUS SampGetUserGroupAttributes(IN PSAM_DB_OBJECT DomainObject, IN ULONG UserId, IN ULONG GroupId, OUT PULONG GroupAttributes)
Definition: user.c:183
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
Definition: rtlfuncs.h:1104
NTSTATUS SampSetUserPassword(IN PSAM_DB_OBJECT UserObject, IN PENCRYPTED_NT_OWF_PASSWORD NtPassword, IN BOOLEAN NtPasswordPresent, IN PENCRYPTED_LM_OWF_PASSWORD LmPassword, IN BOOLEAN LmPasswordPresent)
Definition: user.c:399
LARGE_INTEGER LockoutObservationWindow
Definition: samsrv.h:77
Definition: bufpool.h:45
LARGE_INTEGER ForceLogoff
Definition: samsrv.h:75
const char * LPCSTR
Definition: xmlstorage.h:183
NTSTATUS SampCreateBuiltinDomainSD(OUT PSECURITY_DESCRIPTOR *DomainSd, OUT PULONG Size)
Definition: security.c:283
NTSTATUS SampCreateGroupSD(OUT PSECURITY_DESCRIPTOR *GroupSd, OUT PULONG Size)
Definition: security.c:1146
NTSTATUS SampRegSetValue(IN HANDLE KeyHandle, IN LPCWSTR ValueName, IN ULONG Type, IN LPVOID Data, IN ULONG DataLength)
NTSTATUS SampOpenGroupObject(IN PSAM_DB_OBJECT DomainObject, IN ULONG GroupId, IN ACCESS_MASK DesiredAccess, OUT PSAM_DB_OBJECT *GroupObject)
Definition: group.c:14
struct _SAM_GROUP_FIXED_DATA * PSAM_GROUP_FIXED_DATA
_In_ HANDLE Handle
Definition: extypes.h:390
LPWSTR Name
Definition: samsrv.h:50
NTSTATUS SampCloseDbObject(PSAM_DB_OBJECT DbObject)
Definition: database.c:344
NTSTATUS SampRegCreateKey(IN HANDLE ParentKeyHandle, IN LPCWSTR KeyName, IN ACCESS_MASK DesiredAccess, OUT PHANDLE KeyHandle)
Definition: registry.c:42
VOID SampStartRpcServer(VOID)
Definition: samrpc.c:78
LARGE_INTEGER PasswordLastSet
Definition: samsrv.h:103
NTSTATUS SampRegEnumerateValue(IN HANDLE KeyHandle, IN ULONG Index, OUT LPWSTR Name, IN OUT PULONG NameLength, OUT PULONG Type OPTIONAL, OUT PVOID Data OPTIONAL, IN OUT PULONG DataLength OPTIONAL)
Definition: registry.c:226
struct _SAM_ALIAS_FIXED_DATA * PSAM_ALIAS_FIXED_DATA
enum _DOMAIN_SERVER_ROLE DOMAIN_SERVER_ROLE
#define WINAPI
Definition: msvc.h:8
static const UCHAR Index[8]
Definition: usbohci.c:18
struct _SAM_GROUP_FIXED_DATA SAM_GROUP_FIXED_DATA
static FILE * out
Definition: regtests2xml.c:44
BOOLEAN Trusted
Definition: samsrv.h:54
INT SampLoadString(HINSTANCE hInstance, UINT uId, LPWSTR lpBuffer, INT nBufferMax)
Definition: utils.c:17
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
ULONG RelativeId
Definition: samsrv.h:53
LARGE_INTEGER LockoutDuration
Definition: samsrv.h:76
NTSTATUS SampSetAccountNameInDomain(IN PSAM_DB_OBJECT DomainObject, IN LPCWSTR lpContainerName, IN LPCWSTR lpAccountName, IN ULONG ulRelativeId)
Definition: domain.c:14
T1_FIELD_DICT_PRIVATE password
Definition: t1tokens.h:64
NTSTATUS SampSetObjectAttribute(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, ULONG AttributeType, LPVOID AttributeData, ULONG AttributeSize)
Definition: database.c:499
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
unsigned char BYTE
Definition: mem.h:68
NTSTATUS SampRemoveAccountNameFromDomain(IN PSAM_DB_OBJECT DomainObject, IN LPCWSTR lpContainerName, IN LPCWSTR lpAccountName)
Definition: domain.c:57
LARGE_INTEGER LastLogon
Definition: samsrv.h:101
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
PGENERIC_MAPPING pServerMapping
Definition: samrpc.c:56
NTSTATUS SampSetUserGroupAttributes(IN PSAM_DB_OBJECT DomainObject, IN ULONG UserId, IN ULONG GroupId, IN ULONG GroupAttributes)
Definition: user.c:248
NTSTATUS SampRegOpenKey(IN HANDLE ParentKeyHandle, IN LPCWSTR KeyName, IN ACCESS_MASK DesiredAccess, OUT PHANDLE KeyHandle)
Definition: registry.c:158
ACCESS_MASK Access
Definition: samsrv.h:49
NTSTATUS SampCreateAccountSid(IN PSAM_DB_OBJECT DomainObject, IN ULONG ulRelativeId, IN OUT PSID *AccountSid)
Definition: domain.c:303
HANDLE KeyHandle
Definition: samsrv.h:51
NTSTATUS SampAddGroupMembershipToUser(IN PSAM_DB_OBJECT UserObject, IN ULONG GroupId, IN ULONG Attributes)
Definition: user.c:39
USHORT BadPasswordCount
Definition: samsrv.h:111
_Must_inspect_result_ _In_ USHORT _In_ PHIDP_PREPARSED_DATA _Out_writes_to_ LengthAttributes PHIDP_EXTENDED_ATTRIBUTES Attributes
Definition: hidpi.h:348
struct _SAM_DB_OBJECT * ParentObject
Definition: samsrv.h:55
NTSTATUS SampRemoveAllMembersFromAlias(IN PSAM_DB_OBJECT AliasObject)
Definition: alias.c:314
GLuint in
Definition: glext.h:9616
unsigned short USHORT
Definition: pedump.c:61
LARGE_INTEGER MaxPasswordAge
Definition: samsrv.h:73
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK DesiredAccess
Definition: create.c:4157
NTSTATUS SampSetLogonHoursAttribute(IN PSAM_DB_OBJECT UserObject, IN PSAMPR_LOGON_HOURS LogonHours)
Definition: user.c:689
NTSTATUS SampInitDatabase(VOID)
Definition: database.c:19
unsigned int * PULONG
Definition: retypes.h:1
unsigned int UINT
Definition: ndis.h:50
NTSTATUS SampRemoveMemberFromAllAliases(IN PSAM_DB_OBJECT DomainObject, IN PRPC_SID MemberSid)
Definition: domain.c:214
NTSTATUS WINAPI SystemFunction007(PUNICODE_STRING string, LPBYTE hash)
USHORT LockoutThreshold
Definition: samsrv.h:83
NTSTATUS SampRegQueryKeyInfo(IN HANDLE KeyHandle, OUT PULONG SubKeyCount, OUT PULONG ValueCount)
Definition: registry.c:181
LARGE_INTEGER ModifiedCountAtLastPromotion
Definition: samsrv.h:78
DOMAIN_SERVER_ROLE DomainServerRole
Definition: samsrv.h:85
#define OUT
Definition: typedefs.h:39
ENCRYPTED_LM_OWF_PASSWORD EmptyLmHash
Definition: samsrv.c:27
ULONG UserAccountControl
Definition: samsrv.h:108
NTSTATUS SampGetObjectAttributeString(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, PRPC_UNICODE_STRING String)
Definition: database.c:529
LARGE_INTEGER CreationTime
Definition: samsrv.h:71
unsigned int ULONG
Definition: retypes.h:1
NTSTATUS SampValidateDbObject(SAMPR_HANDLE Handle, SAM_DB_OBJECT_TYPE ObjectType, ACCESS_MASK DesiredAccess, PSAM_DB_OBJECT *DbObject)
Definition: database.c:299
enum _DOMAIN_SERVER_ENABLE_STATE DOMAIN_SERVER_ENABLE_STATE
NTSTATUS SampCreateAliasSD(OUT PSECURITY_DESCRIPTOR *AliasSd, OUT PULONG Size)
Definition: security.c:859
USHORT PasswordHistoryLength
Definition: samsrv.h:82
NTSTATUS SampOpenAliasObject(IN PSAM_DB_OBJECT DomainObject, IN ULONG AliasId, IN ACCESS_MASK DesiredAccess, OUT PSAM_DB_OBJECT *AliasObject)
Definition: alias.c:14
NTSTATUS SampGetMembersInAlias(IN PSAM_DB_OBJECT AliasObject, OUT PULONG MemberCount, OUT PSAMPR_SID_INFORMATION *MemberArray)
Definition: alias.c:218
WCHAR * LPWSTR
Definition: xmlstorage.h:184
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG DataLength
Definition: hidpi.h:333
NTSTATUS SampRemoveUserFromAllAliases(IN PSAM_DB_OBJECT UserObject)
Definition: user.c:391
Definition: _hash_fun.h:40
LARGE_INTEGER LastLogoff
Definition: samsrv.h:102
ULONG ACCESS_MASK
Definition: nt_native.h:40
NTSTATUS SampRegEnumerateSubKey(IN HANDLE KeyHandle, IN ULONG Index, IN ULONG Length, OUT LPWSTR Buffer)
Definition: registry.c:101
Definition: path.c:42
struct _SAM_DB_OBJECT SAM_DB_OBJECT
struct _SAM_DOMAIN_FIXED_DATA * PSAM_DOMAIN_FIXED_DATA
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68