- Add missing domain information types to ntsam.h and fix conflicts in ntsecapi.h and sam.idl.
- Add SamChangePasswordUser, SamChangePasswordUser2 and SamChangePasswordUser3 stubs.

svn path=/trunk/; revision=58216
This commit is contained in:
Eric Kohl 2013-01-25 20:36:23 +00:00
parent 379c1bba14
commit 97d934c8be
5 changed files with 130 additions and 11 deletions

View file

@ -136,7 +136,7 @@ SamAddMemberToGroup(IN SAM_HANDLE GroupHandle,
{ {
NTSTATUS Status; NTSTATUS Status;
TRACE("SamAddMemberToGroup(%p %lu %lx)", TRACE("SamAddMemberToGroup(%p %lu %lx)\n",
GroupHandle, MemberId, Attributes); GroupHandle, MemberId, Attributes);
RpcTryExcept RpcTryExcept
@ -188,6 +188,43 @@ SamAddMultipleMembersToAlias(IN SAM_HANDLE AliasHandle,
} }
NTSTATUS
NTAPI
SamChangePasswordUser(IN SAM_HANDLE UserHandle,
IN PUNICODE_STRING OldPassword,
IN PUNICODE_STRING NewPassword)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
SamChangePasswordUser2(IN PUNICODE_STRING ServerName,
IN PUNICODE_STRING UserName,
IN PUNICODE_STRING OldPassword,
IN PUNICODE_STRING NewPassword)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS
NTAPI
SamChangePasswordUser3(IN PUNICODE_STRING ServerName,
IN PUNICODE_STRING UserName,
IN PUNICODE_STRING OldPassword,
IN PUNICODE_STRING NewPassword,
OUT PDOMAIN_PASSWORD_INFORMATION *EffectivePasswordPolicy,
OUT PUSER_PWD_CHANGE_FAILURE_INFORMATION *PasswordChangeFailureInfo)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
NTSTATUS NTSTATUS
NTAPI NTAPI
SamCloseHandle(IN SAM_HANDLE SamHandle) SamCloseHandle(IN SAM_HANDLE SamHandle)

View file

@ -1,9 +1,9 @@
@ stdcall SamAddMemberToAlias(ptr ptr) @ stdcall SamAddMemberToAlias(ptr ptr)
@ stdcall SamAddMemberToGroup(ptr long long) @ stdcall SamAddMemberToGroup(ptr long long)
@ stdcall SamAddMultipleMembersToAlias(ptr ptr long) @ stdcall SamAddMultipleMembersToAlias(ptr ptr long)
@ stub SamChangePasswordUser2 @ stdcall SamChangePasswordUser2(ptr ptr ptr ptr)
@ stub SamChangePasswordUser3 @ stdcall SamChangePasswordUser3(ptr ptr ptr ptr ptr ptr)
@ stub SamChangePasswordUser @ stdcall SamChangePasswordUser(ptr ptr ptr)
@ stdcall SamCloseHandle(ptr) @ stdcall SamCloseHandle(ptr)
@ stdcall SamConnect(ptr ptr long ptr) @ stdcall SamConnect(ptr ptr long ptr)
@ stub SamConnectWithCreds @ stub SamConnectWithCreds

View file

@ -187,12 +187,12 @@ extern "C" {
#define USER_PARTIAL_SECRETS_ACCOUNT 0x00100000 #define USER_PARTIAL_SECRETS_ACCOUNT 0x00100000
#define USER_USE_AES_KEYS 0x00200000 #define USER_USE_AES_KEYS 0x00200000
/* Constants uses by LOGON_HOURS.UnitsPerWeek */ /* Constants used by LOGON_HOURS.UnitsPerWeek */
#define SAM_DAYS_PER_WEEK (7) #define SAM_DAYS_PER_WEEK (7)
#define SAM_HOURS_PER_WEEK (24 * SAM_DAYS_PER_WEEK) #define SAM_HOURS_PER_WEEK (24 * SAM_DAYS_PER_WEEK)
#define SAM_MINUTES_PER_WEEK (60 * SAM_HOURS_PER_WEEK) #define SAM_MINUTES_PER_WEEK (60 * SAM_HOURS_PER_WEEK)
/* Flags used in USER_ALL_INFORMATION.WhichField */ /* Flags used by USER_ALL_INFORMATION.WhichField */
#define USER_ALL_USERNAME 0x00000001 #define USER_ALL_USERNAME 0x00000001
#define USER_ALL_FULLNAME 0x00000002 #define USER_ALL_FULLNAME 0x00000002
#define USER_ALL_USERID 0x00000004 #define USER_ALL_USERID 0x00000004
@ -225,6 +225,26 @@ extern "C" {
#define USER_ALL_OWFPASSWORD 0x20000000 #define USER_ALL_OWFPASSWORD 0x20000000
#define USER_ALL_UNDEFINED_MASK 0xC0000000 #define USER_ALL_UNDEFINED_MASK 0xC0000000
/* Values used by USER_PWD_CHANGE_FAILURE_INFORMATION.ExtendedFailureReason */
#define SAM_PWD_CHANGE_NO_ERROR 0
#define SAM_PWD_CHANGE_PASSWORD_TOO_SHORT 1
#define SAM_PWD_CHANGE_PWD_IN_HISTORY 2
#define SAM_PWD_CHANGE_USERNAME_IN_PASSWORD 3
#define SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD 4
#define SAM_PWD_CHANGE_NOT_COMPLEX 5
#define SAM_PWD_CHANGE_MACHINE_PASSWORD_NOT_DEFAULT 6
#define SAM_PWD_CHANGE_FAILED_BY_FILTER 7
#define SAM_PWD_CHANGE_PASSWORD_TOO_LONG 8
#define SAM_PWD_CHANGE_FAILURE_REASON_MAX 8
/* Flags used by DOMAIN_PASSWORD_INFORMATION.PasswordProperties */
#define DOMAIN_PASSWORD_COMPLEX 0x00000001L
#define DOMAIN_PASSWORD_NO_ANON_CHANGE 0x00000002L
#define DOMAIN_PASSWORD_NO_CLEAR_CHANGE 0x00000004L
#define DOMAIN_LOCKOUT_ADMINS 0x00000008L
#define DOMAIN_PASSWORD_STORE_CLEARTEXT 0x00000010L
#define DOMAIN_REFUSE_PASSWORD_CHANGE 0x00000020L
#define DOMAIN_NO_LM_OWF_CHANGE 0x00000040L
typedef PVOID SAM_HANDLE, *PSAM_HANDLE; typedef PVOID SAM_HANDLE, *PSAM_HANDLE;
typedef ULONG SAM_ENUMERATE_HANDLE, *PSAM_ENUMERATE_HANDLE; typedef ULONG SAM_ENUMERATE_HANDLE, *PSAM_ENUMERATE_HANDLE;
@ -295,6 +315,18 @@ typedef enum _DOMAIN_SERVER_ROLE
DomainServerRolePrimary DomainServerRolePrimary
} DOMAIN_SERVER_ROLE, *PDOMAIN_SERVER_ROLE; } DOMAIN_SERVER_ROLE, *PDOMAIN_SERVER_ROLE;
#ifndef _DOMAIN_PASSWORD_INFORMATION_DEFINED
#define _DOMAIN_PASSWORD_INFORMATION_DEFINED
typedef struct _DOMAIN_PASSWORD_INFORMATION
{
USHORT MinPasswordLength;
USHORT PasswordHistoryLength;
ULONG PasswordProperties;
LARGE_INTEGER MaxPasswordAge;
LARGE_INTEGER MinPasswordAge;
} DOMAIN_PASSWORD_INFORMATION, *PDOMAIN_PASSWORD_INFORMATION;
#endif
#include "pshpack4.h" #include "pshpack4.h"
typedef struct _DOMAIN_GENERAL_INFORMATION typedef struct _DOMAIN_GENERAL_INFORMATION
{ {
@ -337,6 +369,12 @@ typedef struct _DOMAIN_SERVER_ROLE_INFORMATION
DOMAIN_SERVER_ROLE DomainServerRole; DOMAIN_SERVER_ROLE DomainServerRole;
} DOMAIN_SERVER_ROLE_INFORMATION, *PDOMAIN_SERVER_ROLE_INFORMATION; } DOMAIN_SERVER_ROLE_INFORMATION, *PDOMAIN_SERVER_ROLE_INFORMATION;
typedef struct _DOMAIN_MODIFIED_INFORMATION
{
LARGE_INTEGER DomainModifiedCount;
LARGE_INTEGER CreationTime;
} DOMAIN_MODIFIED_INFORMATION, *PDOMAIN_MODIFIED_INFORMATION;
typedef struct _DOMAIN_STATE_INFORMATION typedef struct _DOMAIN_STATE_INFORMATION
{ {
DOMAIN_SERVER_ENABLE_STATE DomainServerState; DOMAIN_SERVER_ENABLE_STATE DomainServerState;
@ -357,6 +395,20 @@ typedef struct _DOMAIN_GENERAL_INFORMATION2
} DOMAIN_GENERAL_INFORMATION2, *PDOMAIN_GENERAL_INFORMATION2; } DOMAIN_GENERAL_INFORMATION2, *PDOMAIN_GENERAL_INFORMATION2;
#include "poppack.h" #include "poppack.h"
typedef struct _DOMAIN_LOCKOUT_INFORMATION
{
LARGE_INTEGER LockoutDuration;
LARGE_INTEGER LockoutObservationWindow;
USHORT LockoutThreshold;
} DOMAIN_LOCKOUT_INFORMATION, *PDOMAIN_LOCKOUT_INFORMATION;
typedef struct _DOMAIN_MODIFIED_INFORMATION2
{
LARGE_INTEGER DomainModifiedCount;
LARGE_INTEGER CreationTime;
LARGE_INTEGER ModifiedCountAtLastPromotion;
} DOMAIN_MODIFIED_INFORMATION2, *PDOMAIN_MODIFIED_INFORMATION2;
typedef enum _GROUP_INFORMATION_CLASS typedef enum _GROUP_INFORMATION_CLASS
{ {
GroupGeneralInformation = 1, GroupGeneralInformation = 1,
@ -594,6 +646,11 @@ typedef struct _USER_ALL_INFORMATION
} USER_ALL_INFORMATION, *PUSER_ALL_INFORMATION; } USER_ALL_INFORMATION, *PUSER_ALL_INFORMATION;
#include "poppack.h" #include "poppack.h"
typedef struct _USER_PWD_CHANGE_FAILURE_INFORMATION
{
ULONG ExtendedFailureReason;
UNICODE_STRING FilterModuleName;
} USER_PWD_CHANGE_FAILURE_INFORMATION, *PUSER_PWD_CHANGE_FAILURE_INFORMATION;
#define SAM_SID_COMPATIBILITY_ALL 0 #define SAM_SID_COMPATIBILITY_ALL 0
#define SAM_SID_COMPATIBILITY_LAX 1 #define SAM_SID_COMPATIBILITY_LAX 1
@ -617,6 +674,28 @@ SamAddMultipleMembersToAlias(IN SAM_HANDLE AliasHandle,
IN PSID *MemberIds, IN PSID *MemberIds,
IN ULONG MemberCount); IN ULONG MemberCount);
NTSTATUS
NTAPI
SamChangePasswordUser(IN SAM_HANDLE UserHandle,
IN PUNICODE_STRING OldPassword,
IN PUNICODE_STRING NewPassword);
NTSTATUS
NTAPI
SamChangePasswordUser2(IN PUNICODE_STRING ServerName,
IN PUNICODE_STRING UserName,
IN PUNICODE_STRING OldPassword,
IN PUNICODE_STRING NewPassword);
NTSTATUS
NTAPI
SamChangePasswordUser3(IN PUNICODE_STRING ServerName,
IN PUNICODE_STRING UserName,
IN PUNICODE_STRING OldPassword,
IN PUNICODE_STRING NewPassword,
OUT PDOMAIN_PASSWORD_INFORMATION *EffectivePasswordPolicy,
OUT PUSER_PWD_CHANGE_FAILURE_INFORMATION *PasswordChangeFailureInfo);
NTSTATUS NTSTATUS
NTAPI NTAPI
SamCloseHandle(IN SAM_HANDLE SamHandle); SamCloseHandle(IN SAM_HANDLE SamHandle);

View file

@ -327,6 +327,8 @@ typedef enum _LSA_FOREST_TRUST_COLLISION_RECORD_TYPE {
CollisionXref, CollisionXref,
CollisionOther CollisionOther
} LSA_FOREST_TRUST_COLLISION_RECORD_TYPE; } LSA_FOREST_TRUST_COLLISION_RECORD_TYPE;
#ifndef _DOMAIN_PASSWORD_INFORMATION_DEFINED
#define _DOMAIN_PASSWORD_INFORMATION_DEFINED
typedef struct _DOMAIN_PASSWORD_INFORMATION { typedef struct _DOMAIN_PASSWORD_INFORMATION {
USHORT MinPasswordLength; USHORT MinPasswordLength;
USHORT PasswordHistoryLength; USHORT PasswordHistoryLength;
@ -334,6 +336,7 @@ typedef struct _DOMAIN_PASSWORD_INFORMATION {
LARGE_INTEGER MaxPasswordAge; LARGE_INTEGER MaxPasswordAge;
LARGE_INTEGER MinPasswordAge; LARGE_INTEGER MinPasswordAge;
} DOMAIN_PASSWORD_INFORMATION, *PDOMAIN_PASSWORD_INFORMATION; } DOMAIN_PASSWORD_INFORMATION, *PDOMAIN_PASSWORD_INFORMATION;
#endif
typedef ULONG LSA_ENUMERATION_HANDLE, *PLSA_ENUMERATION_HANDLE; typedef ULONG LSA_ENUMERATION_HANDLE, *PLSA_ENUMERATION_HANDLE;
typedef struct _LSA_ENUMERATION_INFORMATION { typedef struct _LSA_ENUMERATION_INFORMATION {
PSID Sid; PSID Sid;

View file

@ -158,12 +158,12 @@ typedef enum _DOMAIN_SERVER_ROLE
} DOMAIN_SERVER_ROLE, *PDOMAIN_SERVER_ROLE; } DOMAIN_SERVER_ROLE, *PDOMAIN_SERVER_ROLE;
cpp_quote("#endif") cpp_quote("#endif")
cpp_quote("#ifndef _NTSECAPI_H") cpp_quote("#if !defined(_NTSECAPI_H) && !defined(_NTSAM_)")
typedef struct _DOMAIN_PASSWORD_INFORMATION typedef struct _DOMAIN_PASSWORD_INFORMATION
{ {
unsigned short MinPasswordLength; USHORT MinPasswordLength;
unsigned short PasswordHistoryLength; USHORT PasswordHistoryLength;
unsigned long PasswordProperties; ULONG PasswordProperties;
OLD_LARGE_INTEGER MaxPasswordAge; OLD_LARGE_INTEGER MaxPasswordAge;
OLD_LARGE_INTEGER MinPasswordAge; OLD_LARGE_INTEGER MinPasswordAge;
} DOMAIN_PASSWORD_INFORMATION, *PDOMAIN_PASSWORD_INFORMATION; } DOMAIN_PASSWORD_INFORMATION, *PDOMAIN_PASSWORD_INFORMATION;
@ -179,7 +179,6 @@ typedef struct _DOMAIN_SERVER_ROLE_INFORMATION
{ {
DOMAIN_SERVER_ROLE DomainServerRole; DOMAIN_SERVER_ROLE DomainServerRole;
} DOMAIN_SERVER_ROLE_INFORMATION, *PDOMAIN_SERVER_ROLE_INFORMATION; } DOMAIN_SERVER_ROLE_INFORMATION, *PDOMAIN_SERVER_ROLE_INFORMATION;
cpp_quote("#endif")
typedef struct _DOMAIN_MODIFIED_INFORMATION typedef struct _DOMAIN_MODIFIED_INFORMATION
{ {
@ -193,6 +192,7 @@ typedef struct _DOMAIN_MODIFIED_INFORMATION2
OLD_LARGE_INTEGER CreationTime; OLD_LARGE_INTEGER CreationTime;
OLD_LARGE_INTEGER ModifiedCountAtLastPromotion; OLD_LARGE_INTEGER ModifiedCountAtLastPromotion;
} DOMAIN_MODIFIED_INFORMATION2, *PDOMAIN_MODIFIED_INFORMATION2; } DOMAIN_MODIFIED_INFORMATION2, *PDOMAIN_MODIFIED_INFORMATION2;
cpp_quote("#endif")
cpp_quote("#include <pshpack4.h>") cpp_quote("#include <pshpack4.h>")
typedef struct _SAMPR_DOMAIN_GENERAL_INFORMATION typedef struct _SAMPR_DOMAIN_GENERAL_INFORMATION