2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: Security Account Manager (SAM) Server
4 * FILE: reactos/dll/win32/samsrv/samrpc.c
5 * PURPOSE: RPC interface functions
7 * PROGRAMMERS: Eric Kohl
10 /* INCLUDES ****************************************************************/
14 WINE_DEFAULT_DEBUG_CHANNEL(samsrv
);
16 /* GLOBALS ********************************************************************/
18 static SID_IDENTIFIER_AUTHORITY NtSidAuthority
= {SECURITY_NT_AUTHORITY
};
20 /* FUNCTIONS ***************************************************************/
23 SampStartRpcServer(VOID
)
27 TRACE("SampStartRpcServer() called\n");
29 Status
= RpcServerUseProtseqEpW(L
"ncacn_np",
33 if (Status
!= RPC_S_OK
)
35 WARN("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status
);
39 Status
= RpcServerRegisterIf(samr_v1_0_s_ifspec
,
42 if (Status
!= RPC_S_OK
)
44 WARN("RpcServerRegisterIf() failed (Status %lx)\n", Status
);
48 Status
= RpcServerListen(1, 20, TRUE
);
49 if (Status
!= RPC_S_OK
)
51 WARN("RpcServerListen() failed (Status %lx)\n", Status
);
55 TRACE("SampStartRpcServer() done\n");
59 void __RPC_FAR
* __RPC_USER
midl_user_allocate(SIZE_T len
)
61 return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, len
);
65 void __RPC_USER
midl_user_free(void __RPC_FAR
* ptr
)
67 HeapFree(GetProcessHeap(), 0, ptr
);
70 void __RPC_USER
SAMPR_HANDLE_rundown(SAMPR_HANDLE hHandle
)
77 SamrConnect(IN PSAMPR_SERVER_NAME ServerName
,
78 OUT SAMPR_HANDLE
*ServerHandle
,
79 IN ACCESS_MASK DesiredAccess
)
81 PSAM_DB_OBJECT ServerObject
;
84 TRACE("SamrConnect(%p %p %lx)\n",
85 ServerName
, ServerHandle
, DesiredAccess
);
87 Status
= SampOpenDbObject(NULL
,
93 if (NT_SUCCESS(Status
))
94 *ServerHandle
= (SAMPR_HANDLE
)ServerObject
;
96 TRACE("SamrConnect done (Status 0x%08lx)\n", Status
);
104 SamrCloseHandle(IN OUT SAMPR_HANDLE
*SamHandle
)
106 PSAM_DB_OBJECT DbObject
;
107 NTSTATUS Status
= STATUS_SUCCESS
;
109 TRACE("SamrCloseHandle(%p)\n", SamHandle
);
111 Status
= SampValidateDbObject(*SamHandle
,
115 if (Status
== STATUS_SUCCESS
)
117 Status
= SampCloseDbObject(DbObject
);
121 TRACE("SamrCloseHandle done (Status 0x%08lx)\n", Status
);
129 SamrSetSecurityObject(IN SAMPR_HANDLE ObjectHandle
,
130 IN SECURITY_INFORMATION SecurityInformation
,
131 IN PSAMPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor
)
134 return STATUS_NOT_IMPLEMENTED
;
140 SamrQuerySecurityObject(IN SAMPR_HANDLE ObjectHandle
,
141 IN SECURITY_INFORMATION SecurityInformation
,
142 OUT PSAMPR_SR_SECURITY_DESCRIPTOR
* SecurityDescriptor
)
145 return STATUS_NOT_IMPLEMENTED
;
151 SamrShutdownSamServer(IN SAMPR_HANDLE ServerHandle
)
154 return STATUS_NOT_IMPLEMENTED
;
160 SamrLookupDomainInSamServer(IN SAMPR_HANDLE ServerHandle
,
161 IN PRPC_UNICODE_STRING Name
,
162 OUT PRPC_SID
*DomainId
)
165 return STATUS_NOT_IMPLEMENTED
;
171 SamrEnumerateDomainsInSamServer(IN SAMPR_HANDLE ServerHandle
,
172 IN OUT
unsigned long *EnumerationContext
,
173 OUT PSAMPR_ENUMERATION_BUFFER
*Buffer
,
174 IN
unsigned long PreferedMaximumLength
,
175 OUT
unsigned long *CountReturned
)
178 return STATUS_NOT_IMPLEMENTED
;
184 SamrOpenDomain(IN SAMPR_HANDLE ServerHandle
,
185 IN ACCESS_MASK DesiredAccess
,
186 IN PRPC_SID DomainId
,
187 OUT SAMPR_HANDLE
*DomainHandle
)
189 PSAM_DB_OBJECT ServerObject
;
190 PSAM_DB_OBJECT DomainObject
;
193 TRACE("SamrOpenDomain(%p %lx %p %p)\n",
194 ServerHandle
, DesiredAccess
, DomainId
, DomainHandle
);
196 /* Validate the server handle */
197 Status
= SampValidateDbObject(ServerHandle
,
199 SAM_SERVER_LOOKUP_DOMAIN
,
201 if (!NT_SUCCESS(Status
))
204 /* Validate the Domain SID */
205 if ((DomainId
->Revision
!= SID_REVISION
) ||
206 (DomainId
->SubAuthorityCount
> SID_MAX_SUB_AUTHORITIES
) ||
207 (memcmp(&DomainId
->IdentifierAuthority
, &NtSidAuthority
, sizeof(SID_IDENTIFIER_AUTHORITY
)) != 0))
208 return STATUS_INVALID_PARAMETER
;
210 /* Open the domain object */
211 if ((DomainId
->SubAuthorityCount
== 1) &&
212 (DomainId
->SubAuthority
[0] == SECURITY_BUILTIN_DOMAIN_RID
))
214 /* Builtin domain object */
215 TRACE("Opening the builtin domain object.\n");
217 Status
= SampOpenDbObject(ServerObject
,
224 else if ((DomainId
->SubAuthorityCount
== 4) &&
225 (DomainId
->SubAuthority
[0] == SECURITY_NT_NON_UNIQUE
))
227 /* Account domain object */
228 TRACE("Opening the account domain object.\n");
230 /* FIXME: Check the account domain sub authorities!!! */
232 Status
= SampOpenDbObject(ServerObject
,
241 /* No vaild domain SID */
242 Status
= STATUS_INVALID_PARAMETER
;
245 if (NT_SUCCESS(Status
))
246 *DomainHandle
= (SAMPR_HANDLE
)DomainObject
;
248 TRACE("SamrOpenDomain done (Status 0x%08lx)\n", Status
);
256 SamrQueryInformationDomain(IN SAMPR_HANDLE DomainHandle
,
257 IN DOMAIN_INFORMATION_CLASS DomainInformationClass
,
258 OUT PSAMPR_DOMAIN_INFO_BUFFER
*Buffer
)
261 return STATUS_NOT_IMPLEMENTED
;
267 SamrSetInformationDomain(IN SAMPR_HANDLE DomainHandle
,
268 IN DOMAIN_INFORMATION_CLASS DomainInformationClass
,
269 IN PSAMPR_DOMAIN_INFO_BUFFER DomainInformation
)
272 return STATUS_NOT_IMPLEMENTED
;
278 SamrCreateGroupInDomain(IN SAMPR_HANDLE DomainHandle
,
279 IN PRPC_UNICODE_STRING Name
,
280 IN ACCESS_MASK DesiredAccess
,
281 OUT SAMPR_HANDLE
*GroupHandle
,
282 OUT
unsigned long *RelativeId
)
285 return STATUS_NOT_IMPLEMENTED
;
291 SamrEnumerateGroupsInDomain(IN SAMPR_HANDLE DomainHandle
,
292 IN OUT
unsigned long *EnumerationContext
,
293 OUT PSAMPR_ENUMERATION_BUFFER
*Buffer
,
294 IN
unsigned long PreferedMaximumLength
,
295 OUT
unsigned long *CountReturned
)
298 return STATUS_NOT_IMPLEMENTED
;
304 SamrCreateUserInDomain(IN SAMPR_HANDLE DomainHandle
,
305 IN PRPC_UNICODE_STRING Name
,
306 IN ACCESS_MASK DesiredAccess
,
307 OUT SAMPR_HANDLE
*UserHandle
,
308 OUT
unsigned long *RelativeId
)
310 PSAM_DB_OBJECT DomainObject
;
311 PSAM_DB_OBJECT UserObject
;
315 BOOL bAliasExists
= FALSE
;
318 TRACE("SamrCreateUserInDomain(%p %p %lx %p %p)\n",
319 DomainHandle
, Name
, DesiredAccess
, UserHandle
, RelativeId
);
321 /* Validate the domain handle */
322 Status
= SampValidateDbObject(DomainHandle
,
326 if (!NT_SUCCESS(Status
))
328 TRACE("failed with status 0x%08lx\n", Status
);
332 /* Get the NextRID attribute */
333 ulSize
= sizeof(ULONG
);
334 Status
= SampGetObjectAttribute(DomainObject
,
339 if (!NT_SUCCESS(Status
))
340 ulRid
= DOMAIN_USER_RID_MAX
;
342 TRACE("RID: %lx\n", ulRid
);
344 /* Convert the RID into a string (hex) */
345 _ultow(ulRid
, szRid
, 16);
347 /* Check whether the user name is already in use */
348 Status
= SampCheckDbObjectNameAlias(DomainObject
,
352 if (!NT_SUCCESS(Status
))
354 TRACE("failed with status 0x%08lx\n", Status
);
360 TRACE("The user account %S already exists!\n", Name
->Buffer
);
361 return STATUS_USER_EXISTS
;
364 /* Create the user object */
365 Status
= SampCreateDbObject(DomainObject
,
371 if (!NT_SUCCESS(Status
))
373 TRACE("failed with status 0x%08lx\n", Status
);
377 /* Add the name alias for the user object */
378 Status
= SampSetDbObjectNameAlias(DomainObject
,
382 if (!NT_SUCCESS(Status
))
384 TRACE("failed with status 0x%08lx\n", Status
);
388 /* Set the account name attribute */
389 Status
= SampSetObjectAttribute(UserObject
,
392 (LPVOID
)Name
->Buffer
,
393 Name
->MaximumLength
);
394 if (!NT_SUCCESS(Status
))
396 TRACE("failed with status 0x%08lx\n", Status
);
400 /* FIXME: Set default user attributes */
402 if (NT_SUCCESS(Status
))
404 *UserHandle
= (SAMPR_HANDLE
)UserObject
;
408 /* Increment the NextRID attribute */
410 ulSize
= sizeof(ULONG
);
411 SampSetObjectAttribute(DomainObject
,
417 TRACE("returns with status 0x%08lx\n", Status
);
425 SamrEnumerateUsersInDomain(IN SAMPR_HANDLE DomainHandle
,
426 IN OUT
unsigned long *EnumerationContext
,
427 IN
unsigned long UserAccountControl
,
428 OUT PSAMPR_ENUMERATION_BUFFER
*Buffer
,
429 IN
unsigned long PreferedMaximumLength
,
430 OUT
unsigned long *CountReturned
)
433 return STATUS_NOT_IMPLEMENTED
;
439 SamrCreateAliasInDomain(IN SAMPR_HANDLE DomainHandle
,
440 IN PRPC_UNICODE_STRING AccountName
,
441 IN ACCESS_MASK DesiredAccess
,
442 OUT SAMPR_HANDLE
*AliasHandle
,
443 OUT
unsigned long *RelativeId
)
446 return STATUS_NOT_IMPLEMENTED
;
452 SamrEnumerateAliasesInDomain(IN SAMPR_HANDLE DomainHandle
,
453 IN OUT
unsigned long *EnumerationContext
,
454 OUT PSAMPR_ENUMERATION_BUFFER
*Buffer
,
455 IN
unsigned long PreferedMaximumLength
,
456 OUT
unsigned long *CountReturned
)
459 return STATUS_NOT_IMPLEMENTED
;
465 SamrGetAliasMembership(IN SAMPR_HANDLE DomainHandle
,
466 IN PSAMPR_PSID_ARRAY SidArray
,
467 OUT PSAMPR_ULONG_ARRAY Membership
)
470 return STATUS_NOT_IMPLEMENTED
;
476 SamrLookupNamesInDomain(IN SAMPR_HANDLE DomainHandle
,
477 IN
unsigned long Count
,
478 IN RPC_UNICODE_STRING Names
[],
479 OUT PSAMPR_ULONG_ARRAY RelativeIds
,
480 OUT PSAMPR_ULONG_ARRAY Use
)
483 return STATUS_NOT_IMPLEMENTED
;
489 SamrLookupIdsInDomain(IN SAMPR_HANDLE DomainHandle
,
490 IN
unsigned long Count
,
491 IN
unsigned long *RelativeIds
,
492 OUT PSAMPR_RETURNED_USTRING_ARRAY Names
,
493 OUT PSAMPR_ULONG_ARRAY Use
)
496 return STATUS_NOT_IMPLEMENTED
;
502 SamrOpenGroup(IN SAMPR_HANDLE DomainHandle
,
503 IN ACCESS_MASK DesiredAccess
,
504 IN
unsigned long GroupId
,
505 OUT SAMPR_HANDLE
*GroupHandle
)
508 return STATUS_NOT_IMPLEMENTED
;
514 SamrQueryInformationGroup(IN SAMPR_HANDLE GroupHandle
,
515 IN GROUP_INFORMATION_CLASS GroupInformationClass
,
516 OUT PSAMPR_GROUP_INFO_BUFFER
*Buffer
)
519 return STATUS_NOT_IMPLEMENTED
;
525 SamrSetInformationGroup(IN SAMPR_HANDLE GroupHandle
,
526 IN GROUP_INFORMATION_CLASS GroupInformationClass
,
527 IN PSAMPR_GROUP_INFO_BUFFER Buffer
)
530 return STATUS_NOT_IMPLEMENTED
;
536 SamrAddMemberToGroup(IN SAMPR_HANDLE GroupHandle
,
537 IN
unsigned long MemberId
,
538 IN
unsigned long Attributes
)
541 return STATUS_NOT_IMPLEMENTED
;
547 SamrDeleteGroup(IN OUT SAMPR_HANDLE
*GroupHandle
)
550 return STATUS_NOT_IMPLEMENTED
;
556 SamrRemoveMemberFromGroup(IN SAMPR_HANDLE GroupHandle
,
557 IN
unsigned long MemberId
)
560 return STATUS_NOT_IMPLEMENTED
;
566 SamrGetMembersInGroup(IN SAMPR_HANDLE GroupHandle
,
567 OUT PSAMPR_GET_MEMBERS_BUFFER
*Members
)
570 return STATUS_NOT_IMPLEMENTED
;
576 SamrSetMemberAttributesOfGroup(IN SAMPR_HANDLE GroupHandle
,
577 IN
unsigned long MemberId
,
578 IN
unsigned long Attributes
)
581 return STATUS_NOT_IMPLEMENTED
;
587 SamrOpenAlias(IN SAMPR_HANDLE DomainHandle
,
588 IN ACCESS_MASK DesiredAccess
,
589 IN
unsigned long AliasId
,
590 OUT SAMPR_HANDLE
*AliasHandle
)
593 return STATUS_NOT_IMPLEMENTED
;
599 SamrQueryInformationAlias(IN SAMPR_HANDLE AliasHandle
,
600 IN ALIAS_INFORMATION_CLASS AliasInformationClass
,
601 OUT PSAMPR_ALIAS_INFO_BUFFER
*Buffer
)
604 return STATUS_NOT_IMPLEMENTED
;
610 SamrSetInformationAlias(IN SAMPR_HANDLE AliasHandle
,
611 IN ALIAS_INFORMATION_CLASS AliasInformationClass
,
612 IN PSAMPR_ALIAS_INFO_BUFFER Buffer
)
615 return STATUS_NOT_IMPLEMENTED
;
621 SamrDeleteAlias(IN OUT SAMPR_HANDLE
*AliasHandle
)
624 return STATUS_NOT_IMPLEMENTED
;
630 SamrAddMemberToAlias(IN SAMPR_HANDLE AliasHandle
,
631 IN PRPC_SID MemberId
)
634 return STATUS_NOT_IMPLEMENTED
;
640 SamrRemoveMemberFromAlias(IN SAMPR_HANDLE AliasHandle
,
641 IN PRPC_SID MemberId
)
644 return STATUS_NOT_IMPLEMENTED
;
650 SamrGetMembersInAlias(IN SAMPR_HANDLE AliasHandle
,
651 OUT PSAMPR_PSID_ARRAY_OUT Members
)
654 return STATUS_NOT_IMPLEMENTED
;
660 SamrOpenUser(IN SAMPR_HANDLE DomainHandle
,
661 IN
unsigned long DesiredAccess
,
662 IN
unsigned long UserId
,
663 OUT SAMPR_HANDLE
*UserHandle
)
666 return STATUS_NOT_IMPLEMENTED
;
672 SamrDeleteUser(IN OUT SAMPR_HANDLE
*UserHandle
)
675 return STATUS_NOT_IMPLEMENTED
;
681 SamrQueryInformationUser(IN SAMPR_HANDLE UserHandle
,
682 IN USER_INFORMATION_CLASS UserInformationClass
,
683 OUT PSAMPR_USER_INFO_BUFFER
*Buffer
)
686 return STATUS_NOT_IMPLEMENTED
;
692 SamrSetInformationUser(IN SAMPR_HANDLE UserHandle
,
693 IN USER_INFORMATION_CLASS UserInformationClass
,
694 IN PSAMPR_USER_INFO_BUFFER Buffer
)
697 return STATUS_NOT_IMPLEMENTED
;
703 SamrChangePasswordUser(IN SAMPR_HANDLE UserHandle
,
704 IN
unsigned char LmPresent
,
705 IN PENCRYPTED_LM_OWF_PASSWORD OldLmEncryptedWithNewLm
,
706 IN PENCRYPTED_LM_OWF_PASSWORD NewLmEncryptedWithOldLm
,
707 IN
unsigned char NtPresent
,
708 IN PENCRYPTED_NT_OWF_PASSWORD OldNtEncryptedWithNewNt
,
709 IN PENCRYPTED_NT_OWF_PASSWORD NewNtEncryptedWithOldNt
,
710 IN
unsigned char NtCrossEncryptionPresent
,
711 IN PENCRYPTED_NT_OWF_PASSWORD NewNtEncryptedWithNewLm
,
712 IN
unsigned char LmCrossEncryptionPresent
,
713 IN PENCRYPTED_LM_OWF_PASSWORD NewLmEncryptedWithNewNt
)
716 return STATUS_NOT_IMPLEMENTED
;
722 SamrGetGroupsForUser(IN SAMPR_HANDLE UserHandle
,
723 OUT PSAMPR_GET_GROUPS_BUFFER
*Groups
)
726 return STATUS_NOT_IMPLEMENTED
;
732 SamrQueryDisplayInformation(IN SAMPR_HANDLE DomainHandle
,
733 IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass
,
734 IN
unsigned long Index
,
735 IN
unsigned long EntryCount
,
736 IN
unsigned long PreferredMaximumLength
,
737 OUT
unsigned long *TotalAvailable
,
738 OUT
unsigned long *TotalReturned
,
739 OUT PSAMPR_DISPLAY_INFO_BUFFER Buffer
)
742 return STATUS_NOT_IMPLEMENTED
;
748 SamrGetDisplayEnumerationIndex(IN SAMPR_HANDLE DomainHandle
,
749 IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass
,
750 IN PRPC_UNICODE_STRING Prefix
,
751 OUT
unsigned long *Index
)
754 return STATUS_NOT_IMPLEMENTED
;
760 SamrTestPrivateFunctionsDomain(IN SAMPR_HANDLE DomainHandle
)
763 return STATUS_NOT_IMPLEMENTED
;
769 SamrTestPrivateFunctionsUser(IN SAMPR_HANDLE UserHandle
)
772 return STATUS_NOT_IMPLEMENTED
;
778 SamrGetUserDomainPasswordInformation(IN SAMPR_HANDLE UserHandle
,
779 OUT PUSER_DOMAIN_PASSWORD_INFORMATION PasswordInformation
)
782 return STATUS_NOT_IMPLEMENTED
;
788 SamrRemoveMemberFromForeignDomain(IN SAMPR_HANDLE DomainHandle
,
789 IN PRPC_SID MemberSid
)
792 return STATUS_NOT_IMPLEMENTED
;
798 SamrQueryInformationDomain2(IN SAMPR_HANDLE DomainHandle
,
799 IN DOMAIN_INFORMATION_CLASS DomainInformationClass
,
800 OUT PSAMPR_DOMAIN_INFO_BUFFER
*Buffer
)
803 return STATUS_NOT_IMPLEMENTED
;
809 SamrQueryInformationUser2(IN SAMPR_HANDLE UserHandle
,
810 IN USER_INFORMATION_CLASS UserInformationClass
,
811 OUT PSAMPR_USER_INFO_BUFFER
*Buffer
)
814 return STATUS_NOT_IMPLEMENTED
;
820 SamrQueryDisplayInformation2(IN SAMPR_HANDLE DomainHandle
,
821 IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass
,
822 IN
unsigned long Index
,
823 IN
unsigned long EntryCount
,
824 IN
unsigned long PreferredMaximumLength
,
825 OUT
unsigned long *TotalAvailable
,
826 OUT
unsigned long *TotalReturned
,
827 OUT PSAMPR_DISPLAY_INFO_BUFFER Buffer
)
830 return STATUS_NOT_IMPLEMENTED
;
836 SamrGetDisplayEnumerationIndex2(IN SAMPR_HANDLE DomainHandle
,
837 IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass
,
838 IN PRPC_UNICODE_STRING Prefix
,
839 OUT
unsigned long *Index
)
842 return STATUS_NOT_IMPLEMENTED
;
848 SamrCreateUser2InDomain(IN SAMPR_HANDLE DomainHandle
,
849 IN PRPC_UNICODE_STRING Name
,
850 IN
unsigned long AccountType
,
851 IN
unsigned long DesiredAccess
,
852 OUT SAMPR_HANDLE
*UserHandle
,
853 OUT
unsigned long *GrantedAccess
,
854 OUT
unsigned long *RelativeId
)
857 return STATUS_NOT_IMPLEMENTED
;
863 SamrQueryDisplayInformation3(IN SAMPR_HANDLE DomainHandle
,
864 IN DOMAIN_DISPLAY_INFORMATION DisplayInformationClass
,
865 IN
unsigned long Index
,
866 IN
unsigned long EntryCount
,
867 IN
unsigned long PreferredMaximumLength
,
868 OUT
unsigned long *TotalAvailable
,
869 OUT
unsigned long *TotalReturned
,
870 OUT PSAMPR_DISPLAY_INFO_BUFFER Buffer
)
873 return STATUS_NOT_IMPLEMENTED
;
879 SamrAddMultipleMembersToAlias(IN SAMPR_HANDLE AliasHandle
,
880 IN PSAMPR_PSID_ARRAY MembersBuffer
)
883 return STATUS_NOT_IMPLEMENTED
;
889 SamrRemoveMultipleMembersFromAlias(IN SAMPR_HANDLE AliasHandle
,
890 IN PSAMPR_PSID_ARRAY MembersBuffer
)
893 return STATUS_NOT_IMPLEMENTED
;
899 SamrOemChangePasswordUser2(IN handle_t BindingHandle
,
900 IN PRPC_STRING ServerName
,
901 IN PRPC_STRING UserName
,
902 IN PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldLm
,
903 IN PENCRYPTED_LM_OWF_PASSWORD OldLmOwfPasswordEncryptedWithNewLm
)
906 return STATUS_NOT_IMPLEMENTED
;
912 SamrUnicodeChangePasswordUser2(IN handle_t BindingHandle
,
913 IN PRPC_UNICODE_STRING ServerName
,
914 IN PRPC_UNICODE_STRING UserName
,
915 IN PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldNt
,
916 IN PENCRYPTED_NT_OWF_PASSWORD OldNtOwfPasswordEncryptedWithNewNt
,
917 IN
unsigned char LmPresent
,
918 IN PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldLm
,
919 IN PENCRYPTED_LM_OWF_PASSWORD OldLmOwfPasswordEncryptedWithNewNt
)
922 return STATUS_NOT_IMPLEMENTED
;
928 SamrGetDomainPasswordInformation(IN handle_t BindingHandle
,
929 IN PRPC_UNICODE_STRING Unused
,
930 OUT PUSER_DOMAIN_PASSWORD_INFORMATION PasswordInformation
)
933 return STATUS_NOT_IMPLEMENTED
;
939 SamrConnect2(IN PSAMPR_SERVER_NAME ServerName
,
940 OUT SAMPR_HANDLE
*ServerHandle
,
941 IN ACCESS_MASK DesiredAccess
)
944 return STATUS_NOT_IMPLEMENTED
;
950 SamrSetInformationUser2(IN SAMPR_HANDLE UserHandle
,
951 IN USER_INFORMATION_CLASS UserInformationClass
,
952 IN PSAMPR_USER_INFO_BUFFER Buffer
)
955 return STATUS_NOT_IMPLEMENTED
;
961 SamrSetBootKeyInformation(IN handle_t BindingHandle
) /* FIXME */
964 return STATUS_NOT_IMPLEMENTED
;
970 SamrGetBootKeyInformation(IN handle_t BindingHandle
) /* FIXME */
973 return STATUS_NOT_IMPLEMENTED
;
979 SamrConnect3(IN handle_t BindingHandle
) /* FIXME */
982 return STATUS_NOT_IMPLEMENTED
;
988 SamrConnect4(IN PSAMPR_SERVER_NAME ServerName
,
989 OUT SAMPR_HANDLE
*ServerHandle
,
990 IN
unsigned long ClientRevision
,
991 IN ACCESS_MASK DesiredAccess
)
994 return STATUS_NOT_IMPLEMENTED
;
1000 SamrUnicodeChangePasswordUser3(IN handle_t BindingHandle
) /* FIXME */
1003 return STATUS_NOT_IMPLEMENTED
;
1009 SamrConnect5(IN PSAMPR_SERVER_NAME ServerName
,
1010 IN ACCESS_MASK DesiredAccess
,
1011 IN
unsigned long InVersion
,
1012 IN SAMPR_REVISION_INFO
*InRevisionInfo
,
1013 OUT
unsigned long *OutVersion
,
1014 OUT SAMPR_REVISION_INFO
*OutRevisionInfo
,
1015 OUT SAMPR_HANDLE
*ServerHandle
)
1018 return STATUS_NOT_IMPLEMENTED
;
1024 SamrRidToSid(IN SAMPR_HANDLE ObjectHandle
,
1025 IN
unsigned long Rid
,
1029 return STATUS_NOT_IMPLEMENTED
;
1035 SamrSetDSRMPassword(IN handle_t BindingHandle
,
1036 IN PRPC_UNICODE_STRING Unused
,
1037 IN
unsigned long UserId
,
1038 IN PENCRYPTED_NT_OWF_PASSWORD EncryptedNtOwfPassword
)
1041 return STATUS_NOT_IMPLEMENTED
;
1047 SamrValidatePassword(IN handle_t Handle
,
1048 IN PASSWORD_POLICY_VALIDATION_TYPE ValidationType
,
1049 IN PSAM_VALIDATE_INPUT_ARG InputArg
,
1050 OUT PSAM_VALIDATE_OUTPUT_ARG
*OutputArg
)
1053 return STATUS_NOT_IMPLEMENTED
;