ReactOS  0.4.15-dev-2359-g0dedb9b
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/ketypes.h>
25 #include <ndk/kefuncs.h>
26 #include <ndk/obfuncs.h>
27 #include <ndk/rtlfuncs.h>
28 #include <ddk/ntsam.h>
29 #include <sddl.h>
30 #include <sam_s.h>
31 
32 #include <wine/debug.h>
34 
35 typedef enum _SAM_DB_OBJECT_TYPE
36 {
44 
45 typedef struct _SAM_DB_OBJECT
46 {
53  HANDLE MembersKeyHandle; // only used by Aliases
58 
59 #define SAMP_DB_SIGNATURE 0x87654321
60 
61 typedef struct _SAM_ALIAS_FIXED_DATA
62 {
67 
68 typedef struct _SAM_DOMAIN_FIXED_DATA
69 {
74  LARGE_INTEGER MaxPasswordAge; /* relative Time */
75  LARGE_INTEGER MinPasswordAge; /* relative Time */
76  LARGE_INTEGER ForceLogoff; /* relative Time */
77  LARGE_INTEGER LockoutDuration; /* relative Time */
89 
90 typedef struct _SAM_GROUP_FIXED_DATA
91 {
97 
98 typedef struct _SAM_USER_FIXED_DATA
99 {
117 
118 
124 
125 /* alias.c */
126 
127 NTSTATUS
129  IN ULONG AliasId,
131  OUT PSAM_DB_OBJECT *AliasObject);
132 
133 NTSTATUS
135  IN PRPC_SID MemberId);
136 
137 NTSTATUS
138 NTAPI
140  IN PRPC_SID MemberId);
141 
142 NTSTATUS
144  OUT PULONG MemberCount,
145  OUT PSAMPR_SID_INFORMATION *MemberArray);
146 
147 NTSTATUS
149 
150 
151 /* database.c */
152 
153 NTSTATUS
155 
156 NTSTATUS
158  IN LPWSTR ContainerName,
160  IN ULONG RelativeId,
163  OUT PSAM_DB_OBJECT *DbObject);
164 
165 NTSTATUS
166 SampOpenDbObject(IN PSAM_DB_OBJECT ParentObject,
167  IN LPWSTR ContainerName,
169  IN ULONG RelativeId,
172  OUT PSAM_DB_OBJECT *DbObject);
173 
174 NTSTATUS
178  PSAM_DB_OBJECT *DbObject);
179 
180 NTSTATUS
182 
183 NTSTATUS
185 
186 NTSTATUS
188  LPWSTR AttributeName,
189  ULONG AttributeType,
191  ULONG AttributeSize);
192 
193 NTSTATUS
195  LPWSTR AttributeName,
196  PULONG AttributeType,
198  PULONG AttributeSize);
199 
200 NTSTATUS
202  LPWSTR AttributeName,
204 
205 NTSTATUS
207  LPWSTR AttributeName,
209 
210 /* domain.c */
211 
212 NTSTATUS
214  IN LPCWSTR lpContainerName,
216  IN ULONG ulRelativeId);
217 
218 NTSTATUS
220  IN LPCWSTR lpContainerName,
222 
223 NTSTATUS
226 
227 NTSTATUS
229  IN PRPC_SID MemberSid);
230 
231 NTSTATUS
233  IN ULONG ulRelativeId,
234  IN OUT PSID *AccountSid);
235 
236 /* group.h */
237 
238 NTSTATUS
240  IN ULONG GroupId,
242  OUT PSAM_DB_OBJECT *GroupObject);
243 
244 NTSTATUS
246  IN ULONG MemberId);
247 
248 NTSTATUS
250  IN ULONG MemberId);
251 
252 
253 /* registry.h */
254 
255 NTSTATUS
257 
258 NTSTATUS
259 SampRegCreateKey(IN HANDLE ParentKeyHandle,
263 
264 NTSTATUS
265 SampRegDeleteKey(IN HANDLE ParentKeyHandle,
266  IN LPCWSTR KeyName);
267 
268 NTSTATUS
270  IN ULONG Index,
271  IN ULONG Length,
272  OUT LPWSTR Buffer);
273 
274 NTSTATUS
275 SampRegOpenKey(IN HANDLE ParentKeyHandle,
279 
280 NTSTATUS
282  OUT PULONG SubKeyCount,
283  OUT PULONG ValueCount);
284 
285 NTSTATUS
288 
289 NTSTATUS
291  IN ULONG Index,
292  OUT LPWSTR Name,
293  IN OUT PULONG NameLength,
297 
298 NTSTATUS
304 
305 NTSTATUS
308  IN ULONG Type,
309  IN LPVOID Data,
311 
312 
313 /* samspc.c */
314 
315 VOID
317 
318 
319 /* security.c */
320 
321 NTSTATUS
323  OUT PULONG Size);
324 
325 NTSTATUS
327  OUT PULONG Size);
328 
329 NTSTATUS
331  OUT PULONG Size);
332 
333 NTSTATUS
335  OUT PULONG Size);
336 
337 NTSTATUS
339  OUT PULONG Size);
340 
341 NTSTATUS
342 SampCreateUserSD(IN PSID UserSid,
343  OUT PSECURITY_DESCRIPTOR *UserSd,
344  OUT PULONG Size);
345 
346 /* setup.c */
347 
348 BOOL
350 
351 
352 /* user.c */
353 
354 NTSTATUS
356  IN ULONG UserId,
358  OUT PSAM_DB_OBJECT *UserObject);
359 
360 NTSTATUS
362  IN ULONG GroupId,
364 
365 NTSTATUS
367  IN ULONG GroupId);
368 
369 NTSTATUS
371  IN ULONG UserId,
372  IN ULONG GroupId,
373  OUT PULONG GroupAttributes);
374 
375 NTSTATUS
377  IN ULONG UserId,
378  IN ULONG GroupId,
379  IN ULONG GroupAttributes);
380 
381 NTSTATUS
383 
384 NTSTATUS
386 
387 NTSTATUS
389  IN PENCRYPTED_NT_OWF_PASSWORD NtPassword,
390  IN BOOLEAN NtPasswordPresent,
391  IN PENCRYPTED_LM_OWF_PASSWORD LmPassword,
392  IN BOOLEAN LmPasswordPresent);
393 
394 NTSTATUS
396  IN OUT PSAMPR_LOGON_HOURS LogonHours);
397 
398 NTSTATUS
400  IN PSAMPR_LOGON_HOURS LogonHours);
401 
402 
403 /* utils.c */
404 
405 INT
407  UINT uId,
409  INT nBufferMax);
410 
411 BOOL
413 
414 PSID
415 AppendRidToSid(PSID SrcSid,
416  ULONG Rid);
417 
418 NTSTATUS
420  OUT PULONG Rid);
421 
422 NTSTATUS
424  IN USHORT MaxLength);
425 
426 
427 /* Undocumented advapi32 functions */
428 
429 NTSTATUS
430 WINAPI
432  LPSTR hash);
433 
434 NTSTATUS
435 WINAPI
437  LPBYTE hash);
438 
439 NTSTATUS
440 WINAPI
441 SystemFunction013(const BYTE *in,
442  const BYTE *key,
443  LPBYTE out);
444 
445 #endif /* _SAMSRV_PCH_ */
NTSTATUS SampCreateAccountDomainSD(OUT PSECURITY_DESCRIPTOR *DomainSd, OUT PULONG Size)
Definition: security.c:545
ULONG Signature
Definition: samsrv.h:47
RTL_RESOURCE SampResource
Definition: samsrv.c:28
ObjectType
Definition: metafile.c:80
USHORT CountryCode
Definition: samsrv.h:110
enum _SAM_DB_OBJECT_TYPE SAM_DB_OBJECT_TYPE
NTSTATUS SampRegDeleteKey(IN HANDLE ParentKeyHandle, IN LPCWSTR KeyName)
Definition: registry.c:71
#define IN
Definition: typedefs.h:39
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2654
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
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
NTSTATUS SampCreateServerSD(OUT PSECURITY_DESCRIPTOR *ServerSd, OUT PULONG Size)
Definition: security.c:21
_SAM_DB_OBJECT_TYPE
Definition: samsrv.h:35
struct _SAM_DOMAIN_FIXED_DATA SAM_DOMAIN_FIXED_DATA
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
SAM_DB_OBJECT_TYPE ObjectType
Definition: samsrv.h:48
_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:105
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:106
NTSTATUS SampSetObjectAttributeString(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, PRPC_UNICODE_STRING String)
Definition: database.c:593
USHORT MinPasswordLength
Definition: samsrv.h:82
NTSTATUS SampDeleteAccountDbObject(PSAM_DB_OBJECT DbObject)
Definition: database.c:366
ULONG PrimaryGroupId
Definition: samsrv.h:108
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:85
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
LARGE_INTEGER DomainModifiedCount
Definition: samsrv.h:73
ENCRYPTED_NT_OWF_PASSWORD EmptyNtHash
Definition: samsrv.c:26
NTSTATUS SampRemoveGroupMembershipFromUser(IN PSAM_DB_OBJECT UserObject, IN ULONG GroupId)
Definition: user.c:108
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:75
_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:2720
int32_t INT
Definition: typedefs.h:58
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:87
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
HANDLE MembersKeyHandle
Definition: samsrv.h:53
HINSTANCE hInstance
Definition: charmap.c:20
unsigned char * LPBYTE
Definition: typedefs.h:53
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2430
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:115
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:81
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:49
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:1103
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:78
_In_ ULONG _In_opt_ WDFREQUEST _In_opt_ PVOID _In_ size_t _In_ PVOID _In_ size_t _Out_ size_t * DataLength
Definition: cdrom.h:1437
Definition: bufpool.h:45
LARGE_INTEGER ForceLogoff
Definition: samsrv.h:76
const char * LPCSTR
Definition: xmlstorage.h:183
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
Definition: wdfdevice.h:2697
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
LPWSTR Name
Definition: samsrv.h:51
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:104
_In_ WDFCOLLECTION _In_ ULONG Index
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:6
struct _SAM_GROUP_FIXED_DATA SAM_GROUP_FIXED_DATA
static FILE * out
Definition: regtests2xml.c:44
Type
Definition: Type.h:6
BOOLEAN Trusted
Definition: samsrv.h:55
INT SampLoadString(HINSTANCE hInstance, UINT uId, LPWSTR lpBuffer, INT nBufferMax)
Definition: utils.c:17
ULONG RelativeId
Definition: samsrv.h:54
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:240
LARGE_INTEGER LockoutDuration
Definition: samsrv.h:77
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:454
NTSTATUS SampRemoveAccountNameFromDomain(IN PSAM_DB_OBJECT DomainObject, IN LPCWSTR lpContainerName, IN LPCWSTR lpAccountName)
Definition: domain.c:57
LARGE_INTEGER LastLogon
Definition: samsrv.h:102
PGENERIC_MAPPING pServerMapping
Definition: samrpc.c:56
unsigned char BYTE
Definition: xxhash.c:193
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:50
NTSTATUS SampCreateAccountSid(IN PSAM_DB_OBJECT DomainObject, IN ULONG ulRelativeId, IN OUT PSID *AccountSid)
Definition: domain.c:303
HANDLE KeyHandle
Definition: samsrv.h:52
NTSTATUS SampAddGroupMembershipToUser(IN PSAM_DB_OBJECT UserObject, IN ULONG GroupId, IN ULONG Attributes)
Definition: user.c:39
USHORT BadPasswordCount
Definition: samsrv.h:112
struct _SAM_DB_OBJECT * ParentObject
Definition: samsrv.h:56
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:74
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:84
NTSTATUS SampRegQueryKeyInfo(IN HANDLE KeyHandle, OUT PULONG SubKeyCount, OUT PULONG ValueCount)
Definition: registry.c:181
LARGE_INTEGER ModifiedCountAtLastPromotion
Definition: samsrv.h:79
_In_ HANDLE Handle
Definition: extypes.h:390
DOMAIN_SERVER_ROLE DomainServerRole
Definition: samsrv.h:86
#define OUT
Definition: typedefs.h:40
ENCRYPTED_LM_OWF_PASSWORD EmptyLmHash
Definition: samsrv.c:27
enum _NT_PRODUCT_TYPE NT_PRODUCT_TYPE
ULONG UserAccountControl
Definition: samsrv.h:109
NTSTATUS SampGetObjectAttributeString(PSAM_DB_OBJECT DbObject, LPWSTR AttributeName, PRPC_UNICODE_STRING String)
Definition: database.c:529
LARGE_INTEGER CreationTime
Definition: samsrv.h:72
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:83
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
NTSTATUS SampRemoveUserFromAllAliases(IN PSAM_DB_OBJECT UserObject)
Definition: user.c:391
Definition: _hash_fun.h:40
LARGE_INTEGER LastLogoff
Definition: samsrv.h:103
NT_PRODUCT_TYPE SampProductType
Definition: samsrv.c:29
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:41
struct _SAM_DB_OBJECT SAM_DB_OBJECT
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
struct _SAM_DOMAIN_FIXED_DATA * PSAM_DOMAIN_FIXED_DATA
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68