windows-nt/Source/XPSP1/NT/public/internal/ds/inc/samrpc.h

1171 lines
38 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#pragma warning( disable: 4049 ) /* more than 64k source lines */
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 6.00.0347 */
/* Compiler settings for samrpc.idl, samsrv.acf:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, oldnames, robust
error checks: allocation ref bounds_check enum stub_data , no_format_optimization
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING( )
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef __samrpc_h__
#define __samrpc_h__
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
/* Forward Declarations */
/* header files for imported files */
#include "samimp.h"
#ifdef __cplusplus
extern "C"{
#endif
void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * );
#ifndef __samr_INTERFACE_DEFINED__
#define __samr_INTERFACE_DEFINED__
/* interface samr */
/* [strict_context_handle][implicit_handle][unique][ms_union][version][uuid] */
typedef struct _RPC_UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
/* [length_is][size_is] */ PWCH Buffer;
} RPC_UNICODE_STRING;
typedef struct _RPC_UNICODE_STRING *PRPC_UNICODE_STRING;
typedef struct _RPC_CYPHER_DATA
{
ULONG Length;
ULONG MaximumLength;
/* [length_is][size_is] */ PCHAR Buffer;
} RPC_CYPHER_DATA;
typedef struct _RPC_CYPHER_DATA *PRPC_CYPHER_DATA;
typedef struct _RPC_STRING
{
USHORT Length;
USHORT MaximumLength;
/* [length_is][size_is] */ PCHAR Buffer;
} RPC_STRING;
typedef struct _RPC_STRING *PRPC_STRING;
typedef struct _RPC_STRING RPC_ANSI_STRING;
typedef struct _RPC_STRING *PRPC_ANSI_STRING;
typedef struct _RPC_SID
{
UCHAR Revision;
UCHAR SubAuthorityCount;
SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
/* [size_is] */ ULONG SubAuthority[ 1 ];
} RPC_SID;
typedef struct _RPC_SID *PRPC_SID;
typedef struct _RPC_SID **PPRPC_SID;
typedef /* [handle] */ LPWSTR PSAMPR_SERVER_NAME;
typedef /* [context_handle] */ PVOID SAMPR_HANDLE;
#define SAM_NETWORK_REVISION_1 (1)
#define SAM_NETWORK_REVISION_2 (2)
#define SAM_NETWORK_REVISION_3 (3)
#define SAM_NETWORK_REVISION_LATEST SAM_NETWORK_REVISION_3
#define SAM_CLIENT_PRE_NT5 SAM_NETWORK_REVISION_1
#define SAM_CLIENT_NT5 SAM_NETWORK_REVISION_2
#define SAM_CLIENT_LATEST SAM_NETWORK_REVISION_LATEST
#define SAM_EXTENDED_SID_DOMAIN 0x00000001
#define SAM_EXTENDED_SID_DOMAIN_COMPAT_1 0x00000002
#define SAM_EXTENDED_SID_DOMAIN_COMPAT_2 0x00000004
typedef struct _SAMPR_RID_ENUMERATION
{
ULONG RelativeId;
RPC_UNICODE_STRING Name;
} SAMPR_RID_ENUMERATION;
typedef struct _SAMPR_RID_ENUMERATION *PSAMPR_RID_ENUMERATION;
typedef struct _SAMPR_SID_ENUMERATION
{
PSID Sid;
RPC_UNICODE_STRING Name;
} SAMPR_SID_ENUMERATION;
typedef struct _SAMPR_SID_ENUMERATION *PSAMPR_SID_ENUMERATION;
typedef struct _SAMPR_ENUMERATION_BUFFER
{
ULONG EntriesRead;
/* [size_is] */ PSAMPR_RID_ENUMERATION Buffer;
} SAMPR_ENUMERATION_BUFFER;
typedef struct _SAMPR_ENUMERATION_BUFFER *PSAMPR_ENUMERATION_BUFFER;
typedef struct _SAMPR_SR_SECURITY_DESCRIPTOR
{
ULONG Length;
/* [size_is] */ PUCHAR SecurityDescriptor;
} SAMPR_SR_SECURITY_DESCRIPTOR;
typedef struct _SAMPR_SR_SECURITY_DESCRIPTOR *PSAMPR_SR_SECURITY_DESCRIPTOR;
typedef struct _SAMPR_GET_GROUPS_BUFFER
{
ULONG MembershipCount;
/* [size_is] */ PGROUP_MEMBERSHIP Groups;
} SAMPR_GET_GROUPS_BUFFER;
typedef struct _SAMPR_GET_GROUPS_BUFFER *PSAMPR_GET_GROUPS_BUFFER;
typedef struct _SAMPR_GET_MEMBERS_BUFFER
{
ULONG MemberCount;
/* [size_is] */ PULONG Members;
/* [size_is] */ PULONG Attributes;
} SAMPR_GET_MEMBERS_BUFFER;
typedef struct _SAMPR_GET_MEMBERS_BUFFER *PSAMPR_GET_MEMBERS_BUFFER;
typedef struct _SAMPR_LOGON_HOURS
{
USHORT UnitsPerWeek;
/* [length_is][size_is] */ PUCHAR LogonHours;
} SAMPR_LOGON_HOURS;
typedef struct _SAMPR_LOGON_HOURS *PSAMPR_LOGON_HOURS;
typedef struct _SAMPR_ULONG_ARRAY
{
ULONG Count;
/* [size_is] */ ULONG *Element;
} SAMPR_ULONG_ARRAY;
typedef struct _SAMPR_ULONG_ARRAY *PSAMPR_ULONG_ARRAY;
typedef struct _SAMPR_SID_INFORMATION
{
PRPC_SID SidPointer;
} SAMPR_SID_INFORMATION;
typedef /* [allocate] */ struct _SAMPR_SID_INFORMATION *PSAMPR_SID_INFORMATION;
typedef struct _SAMPR_PSID_ARRAY
{
ULONG Count;
/* [size_is] */ PSAMPR_SID_INFORMATION Sids;
} SAMPR_PSID_ARRAY;
typedef struct _SAMPR_PSID_ARRAY *PSAMPR_PSID_ARRAY;
typedef struct _SAMPR_UNICODE_STRING_ARRAY
{
ULONG Count;
/* [size_is] */ RPC_UNICODE_STRING *Element;
} SAMPR_UNICODE_STRING_ARRAY;
typedef struct _SAMPR_UNICODE_STRING_ARRAY *PSAMPR_UNICODE_STRING_ARRAY;
typedef RPC_UNICODE_STRING SAMPR_RETURNED_STRING;
typedef RPC_UNICODE_STRING *PSAMPR_RETURNED_STRING;
typedef STRING SAMPR_RETURNED_NORMAL_STRING;
typedef STRING *PSAMPR_RETURNED_NORMAL_STRING;
typedef struct _SAMPR_RETURNED_USTRING_ARRAY
{
ULONG Count;
/* [size_is] */ PSAMPR_RETURNED_STRING Element;
} SAMPR_RETURNED_USTRING_ARRAY;
typedef struct _SAMPR_RETURNED_USTRING_ARRAY *PSAMPR_RETURNED_USTRING_ARRAY;
typedef struct _SAMPR_REVISION_INFO_V1
{
ULONG Revision;
ULONG SupportedFeatures;
} SAMPR_REVISION_INFO_V1;
typedef struct _SAMPR_REVISION_INFO_V1 *PSAMPR_REVISION_INFO_V1;
typedef /* [public][public][public][switch_type] */ union __MIDL_samr_0001
{
/* [case()] */ SAMPR_REVISION_INFO_V1 V1;
} SAMPR_REVISION_INFO;
typedef /* [switch_type] */ union __MIDL_samr_0001 *PSAMPR_REVISION_INFO;
#pragma pack(4)
typedef struct _SAMPR_DOMAIN_GENERAL_INFORMATION
{
OLD_LARGE_INTEGER ForceLogoff;
RPC_UNICODE_STRING OemInformation;
RPC_UNICODE_STRING DomainName;
RPC_UNICODE_STRING ReplicaSourceNodeName;
OLD_LARGE_INTEGER DomainModifiedCount;
ULONG DomainServerState;
ULONG DomainServerRole;
BOOLEAN UasCompatibilityRequired;
ULONG UserCount;
ULONG GroupCount;
ULONG AliasCount;
} SAMPR_DOMAIN_GENERAL_INFORMATION;
typedef struct _SAMPR_DOMAIN_GENERAL_INFORMATION *PSAMPR_DOMAIN_GENERAL_INFORMATION;
#pragma pack()
#pragma pack(4)
typedef struct _SAMPR_DOMAIN_GENERAL_INFORMATION2
{
SAMPR_DOMAIN_GENERAL_INFORMATION I1;
LARGE_INTEGER LockoutDuration;
LARGE_INTEGER LockoutObservationWindow;
USHORT LockoutThreshold;
} SAMPR_DOMAIN_GENERAL_INFORMATION2;
typedef struct _SAMPR_DOMAIN_GENERAL_INFORMATION2 *PSAMPR_DOMAIN_GENERAL_INFORMATION2;
#pragma pack()
typedef struct _SAMPR_DOMAIN_OEM_INFORMATION
{
RPC_UNICODE_STRING OemInformation;
} SAMPR_DOMAIN_OEM_INFORMATION;
typedef struct _SAMPR_DOMAIN_OEM_INFORMATION *PSAMPR_DOMAIN_OEM_INFORMATION;
typedef struct _SAMPR_DOMAIN_NAME_INFORMATION
{
RPC_UNICODE_STRING DomainName;
} SAMPR_DOMAIN_NAME_INFORMATION;
typedef struct _SAMPR_DOMAIN_NAME_INFORMATION *PSAMPR_DOMAIN_NAME_INFORMATION;
typedef struct SAMPR_DOMAIN_REPLICATION_INFORMATION
{
RPC_UNICODE_STRING ReplicaSourceNodeName;
} SAMPR_DOMAIN_REPLICATION_INFORMATION;
typedef struct SAMPR_DOMAIN_REPLICATION_INFORMATION *PSAMPR_DOMAIN_REPLICATION_INFORMATION;
typedef struct _SAMPR_DOMAIN_LOCKOUT_INFORMATION
{
LARGE_INTEGER LockoutDuration;
LARGE_INTEGER LockoutObservationWindow;
USHORT LockoutThreshold;
} SAMPR_DOMAIN_LOCKOUT_INFORMATION;
typedef struct _SAMPR_DOMAIN_LOCKOUT_INFORMATION *PSAMPR_DOMAIN_LOCKOUT_INFORMATION;
typedef /* [switch_type] */ union _SAMPR_DOMAIN_INFO_BUFFER
{
/* [case()] */ DOMAIN_PASSWORD_INFORMATION Password;
/* [case()] */ SAMPR_DOMAIN_GENERAL_INFORMATION General;
/* [case()] */ DOMAIN_LOGOFF_INFORMATION Logoff;
/* [case()] */ SAMPR_DOMAIN_OEM_INFORMATION Oem;
/* [case()] */ SAMPR_DOMAIN_NAME_INFORMATION Name;
/* [case()] */ DOMAIN_SERVER_ROLE_INFORMATION Role;
/* [case()] */ SAMPR_DOMAIN_REPLICATION_INFORMATION Replication;
/* [case()] */ DOMAIN_MODIFIED_INFORMATION Modified;
/* [case()] */ DOMAIN_STATE_INFORMATION State;
/* [case()] */ SAMPR_DOMAIN_GENERAL_INFORMATION2 General2;
/* [case()] */ SAMPR_DOMAIN_LOCKOUT_INFORMATION Lockout;
/* [case()] */ DOMAIN_MODIFIED_INFORMATION2 Modified2;
} SAMPR_DOMAIN_INFO_BUFFER;
typedef /* [switch_type] */ union _SAMPR_DOMAIN_INFO_BUFFER *PSAMPR_DOMAIN_INFO_BUFFER;
typedef struct _SAMPR_GROUP_GENERAL_INFORMATION
{
RPC_UNICODE_STRING Name;
ULONG Attributes;
ULONG MemberCount;
RPC_UNICODE_STRING AdminComment;
} SAMPR_GROUP_GENERAL_INFORMATION;
typedef struct _SAMPR_GROUP_GENERAL_INFORMATION *PSAMPR_GROUP_GENERAL_INFORMATION;
typedef struct _SAMPR_GROUP_NAME_INFORMATION
{
RPC_UNICODE_STRING Name;
} SAMPR_GROUP_NAME_INFORMATION;
typedef struct _SAMPR_GROUP_NAME_INFORMATION *PSAMPR_GROUP_NAME_INFORMATION;
typedef struct _SAMPR_GROUP_ADM_COMMENT_INFORMATION
{
RPC_UNICODE_STRING AdminComment;
} SAMPR_GROUP_ADM_COMMENT_INFORMATION;
typedef struct _SAMPR_GROUP_ADM_COMMENT_INFORMATION *PSAMPR_GROUP_ADM_COMMENT_INFORMATION;
typedef /* [switch_type] */ union _SAMPR_GROUP_INFO_BUFFER
{
/* [case()] */ SAMPR_GROUP_GENERAL_INFORMATION General;
/* [case()] */ SAMPR_GROUP_NAME_INFORMATION Name;
/* [case()] */ GROUP_ATTRIBUTE_INFORMATION Attribute;
/* [case()] */ SAMPR_GROUP_ADM_COMMENT_INFORMATION AdminComment;
/* [case()] */ SAMPR_GROUP_GENERAL_INFORMATION DoNotUse;
} SAMPR_GROUP_INFO_BUFFER;
typedef /* [switch_type] */ union _SAMPR_GROUP_INFO_BUFFER *PSAMPR_GROUP_INFO_BUFFER;
typedef struct _SAMPR_ALIAS_GENERAL_INFORMATION
{
RPC_UNICODE_STRING Name;
ULONG MemberCount;
RPC_UNICODE_STRING AdminComment;
} SAMPR_ALIAS_GENERAL_INFORMATION;
typedef struct _SAMPR_ALIAS_GENERAL_INFORMATION *PSAMPR_ALIAS_GENERAL_INFORMATION;
typedef struct _SAMPR_ALIAS_NAME_INFORMATION
{
RPC_UNICODE_STRING Name;
} SAMPR_ALIAS_NAME_INFORMATION;
typedef struct _SAMPR_ALIAS_NAME_INFORMATION *PSAMPR_ALIAS_NAME_INFORMATION;
typedef struct _SAMPR_ALIAS_ADM_COMMENT_INFORMATION
{
RPC_UNICODE_STRING AdminComment;
} SAMPR_ALIAS_ADM_COMMENT_INFORMATION;
typedef struct _SAMPR_ALIAS_ADM_COMMENT_INFORMATION *PSAMPR_ALIAS_ADM_COMMENT_INFORMATION;
typedef /* [switch_type] */ union _SAMPR_ALIAS_INFO_BUFFER
{
/* [case()] */ SAMPR_ALIAS_GENERAL_INFORMATION General;
/* [case()] */ SAMPR_ALIAS_NAME_INFORMATION Name;
/* [case()] */ SAMPR_ALIAS_ADM_COMMENT_INFORMATION AdminComment;
} SAMPR_ALIAS_INFO_BUFFER;
typedef /* [switch_type] */ union _SAMPR_ALIAS_INFO_BUFFER *PSAMPR_ALIAS_INFO_BUFFER;
#pragma pack(4)
typedef struct _SAMPR_USER_ALL_INFORMATION
{
OLD_LARGE_INTEGER LastLogon;
OLD_LARGE_INTEGER LastLogoff;
OLD_LARGE_INTEGER PasswordLastSet;
OLD_LARGE_INTEGER AccountExpires;
OLD_LARGE_INTEGER PasswordCanChange;
OLD_LARGE_INTEGER PasswordMustChange;
RPC_UNICODE_STRING UserName;
RPC_UNICODE_STRING FullName;
RPC_UNICODE_STRING HomeDirectory;
RPC_UNICODE_STRING HomeDirectoryDrive;
RPC_UNICODE_STRING ScriptPath;
RPC_UNICODE_STRING ProfilePath;
RPC_UNICODE_STRING AdminComment;
RPC_UNICODE_STRING WorkStations;
RPC_UNICODE_STRING UserComment;
RPC_UNICODE_STRING Parameters;
RPC_UNICODE_STRING LmOwfPassword;
RPC_UNICODE_STRING NtOwfPassword;
RPC_UNICODE_STRING PrivateData;
SAMPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor;
ULONG UserId;
ULONG PrimaryGroupId;
ULONG UserAccountControl;
ULONG WhichFields;
SAMPR_LOGON_HOURS LogonHours;
USHORT BadPasswordCount;
USHORT LogonCount;
USHORT CountryCode;
USHORT CodePage;
BOOLEAN LmPasswordPresent;
BOOLEAN NtPasswordPresent;
BOOLEAN PasswordExpired;
BOOLEAN PrivateDataSensitive;
} SAMPR_USER_ALL_INFORMATION;
typedef struct _SAMPR_USER_ALL_INFORMATION *PSAMPR_USER_ALL_INFORMATION;
#pragma pack()
#pragma pack(4)
typedef struct _SAMPR_USER_INTERNAL3_INFORMATION
{
SAMPR_USER_ALL_INFORMATION I1;
LARGE_INTEGER LastBadPasswordTime;
} SAMPR_USER_INTERNAL3_INFORMATION;
typedef struct _SAMPR_USER_INTERNAL3_INFORMATION *PSAMPR_USER_INTERNAL3_INFORMATION;
#pragma pack()
typedef struct _SAMPR_USER_GENERAL_INFORMATION
{
RPC_UNICODE_STRING UserName;
RPC_UNICODE_STRING FullName;
ULONG PrimaryGroupId;
RPC_UNICODE_STRING AdminComment;
RPC_UNICODE_STRING UserComment;
} SAMPR_USER_GENERAL_INFORMATION;
typedef struct _SAMPR_USER_GENERAL_INFORMATION *PSAMPR_USER_GENERAL_INFORMATION;
typedef struct _SAMPR_USER_PREFERENCES_INFORMATION
{
RPC_UNICODE_STRING UserComment;
RPC_UNICODE_STRING Reserved1;
USHORT CountryCode;
USHORT CodePage;
} SAMPR_USER_PREFERENCES_INFORMATION;
typedef struct _SAMPR_USER_PREFERENCES_INFORMATION *PSAMPR_USER_PREFERENCES_INFORMATION;
typedef struct _SAMPR_USER_PARAMETERS_INFORMATION
{
RPC_UNICODE_STRING Parameters;
} SAMPR_USER_PARAMETERS_INFORMATION;
typedef struct _SAMPR_USER_PARAMETERS_INFORMATION *PSAMPR_USER_PARAMETERS_INFORMATION;
#pragma pack(4)
typedef struct _SAMPR_USER_LOGON_INFORMATION
{
RPC_UNICODE_STRING UserName;
RPC_UNICODE_STRING FullName;
ULONG UserId;
ULONG PrimaryGroupId;
RPC_UNICODE_STRING HomeDirectory;
RPC_UNICODE_STRING HomeDirectoryDrive;
RPC_UNICODE_STRING ScriptPath;
RPC_UNICODE_STRING ProfilePath;
RPC_UNICODE_STRING WorkStations;
OLD_LARGE_INTEGER LastLogon;
OLD_LARGE_INTEGER LastLogoff;
OLD_LARGE_INTEGER PasswordLastSet;
OLD_LARGE_INTEGER PasswordCanChange;
OLD_LARGE_INTEGER PasswordMustChange;
SAMPR_LOGON_HOURS LogonHours;
USHORT BadPasswordCount;
USHORT LogonCount;
ULONG UserAccountControl;
} SAMPR_USER_LOGON_INFORMATION;
typedef struct _SAMPR_USER_LOGON_INFORMATION *PSAMPR_USER_LOGON_INFORMATION;
#pragma pack()
#pragma pack(4)
typedef struct _SAMPR_USER_ACCOUNT_INFORMATION
{
RPC_UNICODE_STRING UserName;
RPC_UNICODE_STRING FullName;
ULONG UserId;
ULONG PrimaryGroupId;
RPC_UNICODE_STRING HomeDirectory;
RPC_UNICODE_STRING HomeDirectoryDrive;
RPC_UNICODE_STRING ScriptPath;
RPC_UNICODE_STRING ProfilePath;
RPC_UNICODE_STRING AdminComment;
RPC_UNICODE_STRING WorkStations;
OLD_LARGE_INTEGER LastLogon;
OLD_LARGE_INTEGER LastLogoff;
SAMPR_LOGON_HOURS LogonHours;
USHORT BadPasswordCount;
USHORT LogonCount;
OLD_LARGE_INTEGER PasswordLastSet;
OLD_LARGE_INTEGER AccountExpires;
ULONG UserAccountControl;
} SAMPR_USER_ACCOUNT_INFORMATION;
typedef struct _SAMPR_USER_ACCOUNT_INFORMATION *PSAMPR_USER_ACCOUNT_INFORMATION;
#pragma pack()
typedef struct _SAMPR_USER_A_NAME_INFORMATION
{
RPC_UNICODE_STRING UserName;
} SAMPR_USER_A_NAME_INFORMATION;
typedef struct _SAMPR_USER_A_NAME_INFORMATION *PSAMPR_USER_A_NAME_INFORMATION;
typedef struct _SAMPR_USER_F_NAME_INFORMATION
{
RPC_UNICODE_STRING FullName;
} SAMPR_USER_F_NAME_INFORMATION;
typedef struct _SAMPR_USER_F_NAME_INFORMATION *PSAMPR_USER_F_NAME_INFORMATION;
typedef struct _SAMPR_USER_NAME_INFORMATION
{
RPC_UNICODE_STRING UserName;
RPC_UNICODE_STRING FullName;
} SAMPR_USER_NAME_INFORMATION;
typedef struct _SAMPR_USER_NAME_INFORMATION *PSAMPR_USER_NAME_INFORMATION;
typedef struct _SAMPR_USER_HOME_INFORMATION
{
RPC_UNICODE_STRING HomeDirectory;
RPC_UNICODE_STRING HomeDirectoryDrive;
} SAMPR_USER_HOME_INFORMATION;
typedef struct _SAMPR_USER_HOME_INFORMATION *PSAMPR_USER_HOME_INFORMATION;
typedef struct _SAMPR_USER_SCRIPT_INFORMATION
{
RPC_UNICODE_STRING ScriptPath;
} SAMPR_USER_SCRIPT_INFORMATION;
typedef struct _SAMPR_USER_SCRIPT_INFORMATION *PSAMPR_USER_SCRIPT_INFORMATION;
typedef struct _SAMPR_USER_PROFILE_INFORMATION
{
RPC_UNICODE_STRING ProfilePath;
} SAMPR_USER_PROFILE_INFORMATION;
typedef struct _SAMPR_USER_PROFILE_INFORMATION *PSAMPR_USER_PROFILE_INFORMATION;
typedef struct _SAMPR_USER_ADMIN_COMMENT_INFORMATION
{
RPC_UNICODE_STRING AdminComment;
} SAMPR_USER_ADMIN_COMMENT_INFORMATION;
typedef struct _SAMPR_USER_ADMIN_COMMENT_INFORMATION *PSAMPR_USER_ADMIN_COMMENT_INFORMATION;
typedef struct _SAMPR_USER_WORKSTATIONS_INFORMATION
{
RPC_UNICODE_STRING WorkStations;
} SAMPR_USER_WORKSTATIONS_INFORMATION;
typedef struct _SAMPR_USER_WORKSTATIONS_INFORMATION *PSAMPR_USER_WORKSTATIONS_INFORMATION;
typedef struct _SAMPR_USER_LOGON_HOURS_INFORMATION
{
SAMPR_LOGON_HOURS LogonHours;
} SAMPR_USER_LOGON_HOURS_INFORMATION;
typedef struct _SAMPR_USER_LOGON_HOURS_INFORMATION *PSAMPR_USER_LOGON_HOURS_INFORMATION;
typedef struct _SAMPR_USER_INTERNAL1_INFORMATION
{
ENCRYPTED_NT_OWF_PASSWORD EncryptedNtOwfPassword;
ENCRYPTED_LM_OWF_PASSWORD EncryptedLmOwfPassword;
BOOLEAN NtPasswordPresent;
BOOLEAN LmPasswordPresent;
BOOLEAN PasswordExpired;
} SAMPR_USER_INTERNAL1_INFORMATION;
typedef struct _SAMPR_USER_INTERNAL1_INFORMATION *PSAMPR_USER_INTERNAL1_INFORMATION;
typedef struct _SAMPR_USER_INTERNAL4_INFORMATION
{
SAMPR_USER_ALL_INFORMATION I1;
SAMPR_ENCRYPTED_USER_PASSWORD UserPassword;
} SAMPR_USER_INTERNAL4_INFORMATION;
typedef struct _SAMPR_USER_INTERNAL4_INFORMATION *PSAMPR_USER_INTERNAL4_INFORMATION;
typedef struct _SAMPR_USER_INTERNAL4_INFORMATION_NEW
{
SAMPR_USER_ALL_INFORMATION I1;
SAMPR_ENCRYPTED_USER_PASSWORD_NEW UserPassword;
} SAMPR_USER_INTERNAL4_INFORMATION_NEW;
typedef struct _SAMPR_USER_INTERNAL4_INFORMATION_NEW *PSAMPR_USER_INTERNAL4_INFORMATION_NEW;
typedef struct _SAMPR_USER_INTERNAL5_INFORMATION
{
SAMPR_ENCRYPTED_USER_PASSWORD UserPassword;
BOOLEAN PasswordExpired;
} SAMPR_USER_INTERNAL5_INFORMATION;
typedef struct _SAMPR_USER_INTERNAL5_INFORMATION *PSAMPR_USER_INTERNAL5_INFORMATION;
typedef struct _SAMPR_USER_INTERNAL5_INFORMATION_NEW
{
SAMPR_ENCRYPTED_USER_PASSWORD_NEW UserPassword;
BOOLEAN PasswordExpired;
} SAMPR_USER_INTERNAL5_INFORMATION_NEW;
typedef struct _SAMPR_USER_INTERNAL5_INFORMATION_NEW *PSAMPR_USER_INTERNAL5_INFORMATION_NEW;
typedef /* [switch_type] */ union _SAMPR_USER_INFO_BUFFER
{
/* [case()] */ SAMPR_USER_GENERAL_INFORMATION General;
/* [case()] */ SAMPR_USER_PREFERENCES_INFORMATION Preferences;
/* [case()] */ SAMPR_USER_LOGON_INFORMATION Logon;
/* [case()] */ SAMPR_USER_LOGON_HOURS_INFORMATION LogonHours;
/* [case()] */ SAMPR_USER_ACCOUNT_INFORMATION Account;
/* [case()] */ SAMPR_USER_NAME_INFORMATION Name;
/* [case()] */ SAMPR_USER_A_NAME_INFORMATION AccountName;
/* [case()] */ SAMPR_USER_F_NAME_INFORMATION FullName;
/* [case()] */ USER_PRIMARY_GROUP_INFORMATION PrimaryGroup;
/* [case()] */ SAMPR_USER_HOME_INFORMATION Home;
/* [case()] */ SAMPR_USER_SCRIPT_INFORMATION Script;
/* [case()] */ SAMPR_USER_PROFILE_INFORMATION Profile;
/* [case()] */ SAMPR_USER_ADMIN_COMMENT_INFORMATION AdminComment;
/* [case()] */ SAMPR_USER_WORKSTATIONS_INFORMATION WorkStations;
/* [case()] */ USER_CONTROL_INFORMATION Control;
/* [case()] */ USER_EXPIRES_INFORMATION Expires;
/* [case()] */ SAMPR_USER_INTERNAL1_INFORMATION Internal1;
/* [case()] */ USER_INTERNAL2_INFORMATION Internal2;
/* [case()] */ SAMPR_USER_PARAMETERS_INFORMATION Parameters;
/* [case()] */ SAMPR_USER_ALL_INFORMATION All;
/* [case()] */ SAMPR_USER_INTERNAL3_INFORMATION Internal3;
/* [case()] */ SAMPR_USER_INTERNAL4_INFORMATION Internal4;
/* [case()] */ SAMPR_USER_INTERNAL5_INFORMATION Internal5;
/* [case()] */ SAMPR_USER_INTERNAL4_INFORMATION_NEW Internal4New;
/* [case()] */ SAMPR_USER_INTERNAL5_INFORMATION_NEW Internal5New;
} SAMPR_USER_INFO_BUFFER;
typedef /* [switch_type] */ union _SAMPR_USER_INFO_BUFFER *PSAMPR_USER_INFO_BUFFER;
typedef struct _SAMPR_DOMAIN_DISPLAY_USER
{
ULONG Index;
ULONG Rid;
ULONG AccountControl;
SAMPR_RETURNED_STRING LogonName;
SAMPR_RETURNED_STRING AdminComment;
SAMPR_RETURNED_STRING FullName;
} SAMPR_DOMAIN_DISPLAY_USER;
typedef struct _SAMPR_DOMAIN_DISPLAY_USER *PSAMPR_DOMAIN_DISPLAY_USER;
typedef struct _SAMPR_DOMAIN_DISPLAY_MACHINE
{
ULONG Index;
ULONG Rid;
ULONG AccountControl;
SAMPR_RETURNED_STRING Machine;
SAMPR_RETURNED_STRING Comment;
} SAMPR_DOMAIN_DISPLAY_MACHINE;
typedef struct _SAMPR_DOMAIN_DISPLAY_MACHINE *PSAMPR_DOMAIN_DISPLAY_MACHINE;
typedef struct _SAMPR_DOMAIN_DISPLAY_GROUP
{
ULONG Index;
ULONG Rid;
ULONG Attributes;
SAMPR_RETURNED_STRING Group;
SAMPR_RETURNED_STRING Comment;
} SAMPR_DOMAIN_DISPLAY_GROUP;
typedef struct _SAMPR_DOMAIN_DISPLAY_GROUP *PSAMPR_DOMAIN_DISPLAY_GROUP;
typedef struct _SAMPR_DOMAIN_DISPLAY_OEM_USER
{
ULONG Index;
SAMPR_RETURNED_NORMAL_STRING OemUser;
} SAMPR_DOMAIN_DISPLAY_OEM_USER;
typedef struct _SAMPR_DOMAIN_DISPLAY_OEM_USER *PSAMPR_DOMAIN_DISPLAY_OEM_USER;
typedef struct _SAMPR_DOMAIN_DISPLAY_OEM_GROUP
{
ULONG Index;
SAMPR_RETURNED_NORMAL_STRING OemGroup;
} SAMPR_DOMAIN_DISPLAY_OEM_GROUP;
typedef struct _SAMPR_DOMAIN_DISPLAY_OEM_GROUP *PSAMPR_DOMAIN_DISPLAY_OEM_GROUP;
typedef struct _SAMPR_DOMAIN_DISPLAY_USER_BUFFER
{
ULONG EntriesRead;
/* [size_is] */ PSAMPR_DOMAIN_DISPLAY_USER Buffer;
} SAMPR_DOMAIN_DISPLAY_USER_BUFFER;
typedef struct _SAMPR_DOMAIN_DISPLAY_USER_BUFFER *PSAMPR_DOMAIN_DISPLAY_USER_BUFFER;
typedef struct _SAMPR_DOMAIN_DISPLAY_MACHINE_BUFFER
{
ULONG EntriesRead;
/* [size_is] */ PSAMPR_DOMAIN_DISPLAY_MACHINE Buffer;
} SAMPR_DOMAIN_DISPLAY_MACHINE_BUFFER;
typedef struct _SAMPR_DOMAIN_DISPLAY_MACHINE_BUFFER *PSAMPR_DOMAIN_DISPLAY_MACHINE_BUFFER;
typedef struct _SAMPR_DOMAIN_DISPLAY_GROUP_BUFFER
{
ULONG EntriesRead;
/* [size_is] */ PSAMPR_DOMAIN_DISPLAY_GROUP Buffer;
} SAMPR_DOMAIN_DISPLAY_GROUP_BUFFER;
typedef struct _SAMPR_DOMAIN_DISPLAY_GROUP_BUFFER *PSAMPR_DOMAIN_DISPLAY_GROUP_BUFFER;
typedef struct _SAMPR_DOMAIN_DISPLAY_OEM_USER_BUFFER
{
ULONG EntriesRead;
/* [size_is] */ PSAMPR_DOMAIN_DISPLAY_OEM_USER Buffer;
} SAMPR_DOMAIN_DISPLAY_OEM_USER_BUFFER;
typedef struct _SAMPR_DOMAIN_DISPLAY_OEM_USER_BUFFER *PSAMPR_DOMAIN_DISPLAY_OEM_USER_BUFFER;
typedef struct _SAMPR_DOMAIN_DISPLAY_OEM_GROUP_BUFFER
{
ULONG EntriesRead;
/* [size_is] */ PSAMPR_DOMAIN_DISPLAY_OEM_GROUP Buffer;
} SAMPR_DOMAIN_DISPLAY_OEM_GROUP_BUFFER;
typedef struct _SAMPR_DOMAIN_DISPLAY_OEM_GROUP_BUFFER *PSAMPR_DOMAIN_DISPLAY_OEM_GROUP_BUFFER;
typedef /* [switch_type] */ union _SAMPR_DISPLAY_INFO_BUFFER
{
/* [case()] */ SAMPR_DOMAIN_DISPLAY_USER_BUFFER UserInformation;
/* [case()] */ SAMPR_DOMAIN_DISPLAY_MACHINE_BUFFER MachineInformation;
/* [case()] */ SAMPR_DOMAIN_DISPLAY_GROUP_BUFFER GroupInformation;
/* [case()] */ SAMPR_DOMAIN_DISPLAY_OEM_USER_BUFFER OemUserInformation;
/* [case()] */ SAMPR_DOMAIN_DISPLAY_OEM_GROUP_BUFFER OemGroupInformation;
} SAMPR_DISPLAY_INFO_BUFFER;
typedef /* [switch_type] */ union _SAMPR_DISPLAY_INFO_BUFFER *PSAMPR_DISPLAY_INFO_BUFFER;
NTSTATUS SamrConnect(
/* [unique][in] */ PSAMPR_SERVER_NAME ServerName,
/* [out] */ SAMPR_HANDLE *ServerHandle,
/* [in] */ ACCESS_MASK DesiredAccess);
NTSTATUS SamrCloseHandle(
/* [out][in] */ SAMPR_HANDLE *SamHandle);
NTSTATUS SamrSetSecurityObject(
/* [in] */ SAMPR_HANDLE ObjectHandle,
/* [in] */ SECURITY_INFORMATION SecurityInformation,
/* [in] */ PSAMPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor);
NTSTATUS SamrQuerySecurityObject(
/* [in] */ SAMPR_HANDLE ObjectHandle,
/* [in] */ SECURITY_INFORMATION SecurityInformation,
/* [out] */ PSAMPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor);
NTSTATUS SamrShutdownSamServer(
/* [in] */ SAMPR_HANDLE ServerHandle);
NTSTATUS SamrLookupDomainInSamServer(
/* [in] */ SAMPR_HANDLE ServerHandle,
/* [in] */ PRPC_UNICODE_STRING Name,
/* [out] */ PRPC_SID *DomainId);
NTSTATUS SamrEnumerateDomainsInSamServer(
/* [in] */ SAMPR_HANDLE ServerHandle,
/* [out][in] */ PSAM_ENUMERATE_HANDLE EnumerationContext,
/* [out] */ PSAMPR_ENUMERATION_BUFFER *Buffer,
/* [in] */ ULONG PreferedMaximumLength,
/* [out] */ PULONG CountReturned);
NTSTATUS SamrOpenDomain(
/* [in] */ SAMPR_HANDLE ServerHandle,
/* [in] */ ACCESS_MASK DesiredAccess,
/* [in] */ PRPC_SID DomainId,
/* [out] */ SAMPR_HANDLE *DomainHandle);
NTSTATUS SamrQueryInformationDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ DOMAIN_INFORMATION_CLASS DomainInformationClass,
/* [switch_is][out] */ PSAMPR_DOMAIN_INFO_BUFFER *Buffer);
NTSTATUS SamrSetInformationDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ DOMAIN_INFORMATION_CLASS DomainInformationClass,
/* [switch_is][in] */ PSAMPR_DOMAIN_INFO_BUFFER DomainInformation);
NTSTATUS SamrCreateGroupInDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ PRPC_UNICODE_STRING Name,
/* [in] */ ACCESS_MASK DesiredAccess,
/* [out] */ SAMPR_HANDLE *GroupHandle,
/* [out] */ PULONG RelativeId);
NTSTATUS SamrEnumerateGroupsInDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [out][in] */ PSAM_ENUMERATE_HANDLE EnumerationContext,
/* [out] */ PSAMPR_ENUMERATION_BUFFER *Buffer,
/* [in] */ ULONG PreferedMaximumLength,
/* [out] */ PULONG CountReturned);
NTSTATUS SamrCreateUserInDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ PRPC_UNICODE_STRING Name,
/* [in] */ ACCESS_MASK DesiredAccess,
/* [out] */ SAMPR_HANDLE *UserHandle,
/* [out] */ PULONG RelativeId);
NTSTATUS SamrEnumerateUsersInDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [out][in] */ PSAM_ENUMERATE_HANDLE EnumerationContext,
/* [in] */ ULONG UserAccountControl,
/* [out] */ PSAMPR_ENUMERATION_BUFFER *Buffer,
/* [in] */ ULONG PreferedMaximumLength,
/* [out] */ PULONG CountReturned);
NTSTATUS SamrCreateAliasInDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ PRPC_UNICODE_STRING AccountName,
/* [in] */ ACCESS_MASK DesiredAccess,
/* [out] */ SAMPR_HANDLE *AliasHandle,
/* [out] */ PULONG RelativeId);
NTSTATUS SamrEnumerateAliasesInDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [out][in] */ PSAM_ENUMERATE_HANDLE EnumerationContext,
/* [out] */ PSAMPR_ENUMERATION_BUFFER *Buffer,
/* [in] */ ULONG PreferedMaximumLength,
/* [out] */ PULONG CountReturned);
NTSTATUS SamrGetAliasMembership(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ PSAMPR_PSID_ARRAY SidArray,
/* [out] */ PSAMPR_ULONG_ARRAY Membership);
NTSTATUS SamrLookupNamesInDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ ULONG Count,
/* [length_is][size_is][in] */ RPC_UNICODE_STRING Names[ ],
/* [out] */ PSAMPR_ULONG_ARRAY RelativeIds,
/* [out] */ PSAMPR_ULONG_ARRAY Use);
NTSTATUS SamrLookupIdsInDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ ULONG Count,
/* [length_is][size_is][in] */ PULONG RelativeIds,
/* [out] */ PSAMPR_RETURNED_USTRING_ARRAY Names,
/* [out] */ PSAMPR_ULONG_ARRAY Use);
NTSTATUS SamrOpenGroup(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ ACCESS_MASK DesiredAccess,
/* [in] */ ULONG GroupId,
/* [out] */ SAMPR_HANDLE *GroupHandle);
NTSTATUS SamrQueryInformationGroup(
/* [in] */ SAMPR_HANDLE GroupHandle,
/* [in] */ GROUP_INFORMATION_CLASS GroupInformationClass,
/* [switch_is][out] */ PSAMPR_GROUP_INFO_BUFFER *Buffer);
NTSTATUS SamrSetInformationGroup(
/* [in] */ SAMPR_HANDLE GroupHandle,
/* [in] */ GROUP_INFORMATION_CLASS GroupInformationClass,
/* [switch_is][in] */ PSAMPR_GROUP_INFO_BUFFER Buffer);
NTSTATUS SamrAddMemberToGroup(
/* [in] */ SAMPR_HANDLE GroupHandle,
/* [in] */ ULONG MemberId,
/* [in] */ ULONG Attributes);
NTSTATUS SamrDeleteGroup(
/* [out][in] */ SAMPR_HANDLE *GroupHandle);
NTSTATUS SamrRemoveMemberFromGroup(
/* [in] */ SAMPR_HANDLE GroupHandle,
/* [in] */ ULONG MemberId);
NTSTATUS SamrGetMembersInGroup(
/* [in] */ SAMPR_HANDLE GroupHandle,
/* [out] */ PSAMPR_GET_MEMBERS_BUFFER *Members);
NTSTATUS SamrSetMemberAttributesOfGroup(
/* [in] */ SAMPR_HANDLE GroupHandle,
/* [in] */ ULONG MemberId,
/* [in] */ ULONG Attributes);
NTSTATUS SamrOpenAlias(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ ACCESS_MASK DesiredAccess,
/* [in] */ ULONG AliasId,
/* [out] */ SAMPR_HANDLE *AliasHandle);
NTSTATUS SamrQueryInformationAlias(
/* [in] */ SAMPR_HANDLE AliasHandle,
/* [in] */ ALIAS_INFORMATION_CLASS AliasInformationClass,
/* [switch_is][out] */ PSAMPR_ALIAS_INFO_BUFFER *Buffer);
NTSTATUS SamrSetInformationAlias(
/* [in] */ SAMPR_HANDLE AliasHandle,
/* [in] */ ALIAS_INFORMATION_CLASS AliasInformationClass,
/* [switch_is][in] */ PSAMPR_ALIAS_INFO_BUFFER Buffer);
NTSTATUS SamrDeleteAlias(
/* [out][in] */ SAMPR_HANDLE *AliasHandle);
NTSTATUS SamrAddMemberToAlias(
/* [in] */ SAMPR_HANDLE AliasHandle,
/* [in] */ PRPC_SID MemberId);
NTSTATUS SamrRemoveMemberFromAlias(
/* [in] */ SAMPR_HANDLE AliasHandle,
/* [in] */ PRPC_SID MemberId);
NTSTATUS SamrGetMembersInAlias(
/* [in] */ SAMPR_HANDLE AliasHandle,
/* [out] */ PSAMPR_PSID_ARRAY Members);
NTSTATUS SamrOpenUser(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ ACCESS_MASK DesiredAccess,
/* [in] */ ULONG UserId,
/* [out] */ SAMPR_HANDLE *UserHandle);
NTSTATUS SamrDeleteUser(
/* [out][in] */ SAMPR_HANDLE *UserHandle);
NTSTATUS SamrQueryInformationUser(
/* [in] */ SAMPR_HANDLE UserHandle,
/* [in] */ USER_INFORMATION_CLASS UserInformationClass,
/* [switch_is][out] */ PSAMPR_USER_INFO_BUFFER *Buffer);
NTSTATUS SamrSetInformationUser(
/* [in] */ SAMPR_HANDLE UserHandle,
/* [in] */ USER_INFORMATION_CLASS UserInformationClass,
/* [switch_is][in] */ PSAMPR_USER_INFO_BUFFER Buffer);
NTSTATUS SamrChangePasswordUser(
/* [in] */ SAMPR_HANDLE UserHandle,
/* [in] */ BOOLEAN LmPresent,
/* [unique][in] */ PENCRYPTED_LM_OWF_PASSWORD LmOldEncryptedWithLmNew,
/* [unique][in] */ PENCRYPTED_LM_OWF_PASSWORD LmNewEncryptedWithLmOld,
/* [in] */ BOOLEAN NtPresent,
/* [unique][in] */ PENCRYPTED_NT_OWF_PASSWORD NtOldEncryptedWithNtNew,
/* [unique][in] */ PENCRYPTED_NT_OWF_PASSWORD NtNewEncryptedWithNtOld,
/* [in] */ BOOLEAN NtCrossEncryptionPresent,
/* [unique][in] */ PENCRYPTED_NT_OWF_PASSWORD NtNewEncryptedWithLmNew,
/* [in] */ BOOLEAN LmCrossEncryptionPresent,
/* [unique][in] */ PENCRYPTED_LM_OWF_PASSWORD LmNtNewEncryptedWithNtNew);
NTSTATUS SamrGetGroupsForUser(
/* [in] */ SAMPR_HANDLE UserHandle,
/* [out] */ PSAMPR_GET_GROUPS_BUFFER *Groups);
NTSTATUS SamrQueryDisplayInformation(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ DOMAIN_DISPLAY_INFORMATION DisplayInformationClass,
/* [in] */ ULONG Index,
/* [in] */ ULONG EntryCount,
/* [in] */ ULONG PreferredMaximumLength,
/* [out] */ PULONG TotalAvailable,
/* [out] */ PULONG TotalReturned,
/* [switch_is][out] */ PSAMPR_DISPLAY_INFO_BUFFER Buffer);
NTSTATUS SamrGetDisplayEnumerationIndex(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ DOMAIN_DISPLAY_INFORMATION DisplayInformationClass,
/* [in] */ PRPC_UNICODE_STRING Prefix,
/* [out] */ PULONG Index);
NTSTATUS SamrTestPrivateFunctionsDomain(
/* [in] */ SAMPR_HANDLE DomainHandle);
NTSTATUS SamrTestPrivateFunctionsUser(
/* [in] */ SAMPR_HANDLE UserHandle);
NTSTATUS SamrGetUserDomainPasswordInformation(
/* [in] */ SAMPR_HANDLE UserHandle,
/* [out] */ PUSER_DOMAIN_PASSWORD_INFORMATION PasswordInformation);
NTSTATUS SamrRemoveMemberFromForeignDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ PRPC_SID MemberSid);
NTSTATUS SamrQueryInformationDomain2(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ DOMAIN_INFORMATION_CLASS DomainInformationClass,
/* [switch_is][out] */ PSAMPR_DOMAIN_INFO_BUFFER *Buffer);
NTSTATUS SamrQueryInformationUser2(
/* [in] */ SAMPR_HANDLE UserHandle,
/* [in] */ USER_INFORMATION_CLASS UserInformationClass,
/* [switch_is][out] */ PSAMPR_USER_INFO_BUFFER *Buffer);
NTSTATUS SamrQueryDisplayInformation2(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ DOMAIN_DISPLAY_INFORMATION DisplayInformationClass,
/* [in] */ ULONG Index,
/* [in] */ ULONG EntryCount,
/* [in] */ ULONG PreferredMaximumLength,
/* [out] */ PULONG TotalAvailable,
/* [out] */ PULONG TotalReturned,
/* [switch_is][out] */ PSAMPR_DISPLAY_INFO_BUFFER Buffer);
NTSTATUS SamrGetDisplayEnumerationIndex2(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ DOMAIN_DISPLAY_INFORMATION DisplayInformationClass,
/* [in] */ PRPC_UNICODE_STRING Prefix,
/* [out] */ PULONG Index);
NTSTATUS SamrCreateUser2InDomain(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ PRPC_UNICODE_STRING Name,
/* [in] */ ULONG AccountType,
/* [in] */ ACCESS_MASK DesiredAccess,
/* [out] */ SAMPR_HANDLE *UserHandle,
/* [out] */ PULONG GrantedAccess,
/* [out] */ PULONG RelativeId);
NTSTATUS SamrQueryDisplayInformation3(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ DOMAIN_DISPLAY_INFORMATION DisplayInformationClass,
/* [in] */ ULONG Index,
/* [in] */ ULONG EntryCount,
/* [in] */ ULONG PreferredMaximumLength,
/* [out] */ PULONG TotalAvailable,
/* [out] */ PULONG TotalReturned,
/* [switch_is][out] */ PSAMPR_DISPLAY_INFO_BUFFER Buffer);
NTSTATUS SamrAddMultipleMembersToAlias(
/* [in] */ SAMPR_HANDLE AliasHandle,
/* [in] */ PSAMPR_PSID_ARRAY MembersBuffer);
NTSTATUS SamrRemoveMultipleMembersFromAlias(
/* [in] */ SAMPR_HANDLE AliasHandle,
/* [in] */ PSAMPR_PSID_ARRAY MembersBuffer);
NTSTATUS SamrOemChangePasswordUser2(
/* [in] */ handle_t BindingHandle,
/* [unique][in] */ PRPC_STRING ServerName,
/* [in] */ PRPC_STRING UserName,
/* [unique][in] */ PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldLm,
/* [unique][in] */ PENCRYPTED_LM_OWF_PASSWORD OldLmOwfPassswordEncryptedWithNewLm);
NTSTATUS SamrUnicodeChangePasswordUser2(
/* [in] */ handle_t BindingHandle,
/* [unique][in] */ PRPC_UNICODE_STRING ServerName,
/* [in] */ PRPC_UNICODE_STRING UserName,
/* [unique][in] */ PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldNt,
/* [unique][in] */ PENCRYPTED_NT_OWF_PASSWORD OldNtOwfPasswordEncryptedWithNewNt,
/* [in] */ BOOLEAN LmPresent,
/* [unique][in] */ PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldLm,
/* [unique][in] */ PENCRYPTED_LM_OWF_PASSWORD OldLmOwfPassswordEncryptedWithNewLmOrNt);
NTSTATUS SamrGetDomainPasswordInformation(
/* [in] */ handle_t BindingHandle,
/* [unique][in] */ PRPC_UNICODE_STRING ServerName,
/* [out] */ PUSER_DOMAIN_PASSWORD_INFORMATION PasswordInformation);
NTSTATUS SamrConnect2(
/* [string][unique][in] */ PSAMPR_SERVER_NAME ServerName,
/* [out] */ SAMPR_HANDLE *ServerHandle,
/* [in] */ ACCESS_MASK DesiredAccess);
NTSTATUS SamrSetInformationUser2(
/* [in] */ SAMPR_HANDLE UserHandle,
/* [in] */ USER_INFORMATION_CLASS UserInformationClass,
/* [switch_is][in] */ PSAMPR_USER_INFO_BUFFER Buffer);
NTSTATUS SamrSetBootKeyInformation(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [in] */ SAMPR_BOOT_TYPE BootOptions,
/* [unique][in] */ PRPC_UNICODE_STRING OldBootKey,
/* [unique][in] */ PRPC_UNICODE_STRING NewBootKey);
NTSTATUS SamrGetBootKeyInformation(
/* [in] */ SAMPR_HANDLE DomainHandle,
/* [out] */ PSAMPR_BOOT_TYPE BootOptions);
NTSTATUS SamrConnect3(
/* [string][unique][in] */ PSAMPR_SERVER_NAME ServerName,
/* [out] */ SAMPR_HANDLE *ServerHandle,
/* [in] */ ULONG ClientRevision,
/* [in] */ ACCESS_MASK DesiredAccess);
NTSTATUS SamrConnect4(
/* [string][unique][in] */ PSAMPR_SERVER_NAME ServerName,
/* [out] */ SAMPR_HANDLE *ServerHandle,
/* [in] */ ULONG ClientRevision,
/* [in] */ ACCESS_MASK DesiredAccess);
NTSTATUS SamrUnicodeChangePasswordUser3(
/* [in] */ handle_t BindingHandle,
/* [unique][in] */ PRPC_UNICODE_STRING ServerName,
/* [in] */ PRPC_UNICODE_STRING UserName,
/* [unique][in] */ PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldNt,
/* [unique][in] */ PENCRYPTED_NT_OWF_PASSWORD OldNtOwfPasswordEncryptedWithNewNt,
/* [in] */ BOOLEAN LmPresent,
/* [unique][in] */ PSAMPR_ENCRYPTED_USER_PASSWORD NewPasswordEncryptedWithOldLm,
/* [unique][in] */ PENCRYPTED_LM_OWF_PASSWORD OldLmOwfPassswordEncryptedWithNewLmOrNt,
/* [unique][in] */ PSAMPR_ENCRYPTED_USER_PASSWORD AdditionalData,
/* [out] */ PDOMAIN_PASSWORD_INFORMATION *EffectivePasswordPolicy,
/* [out] */ PUSER_PWD_CHANGE_FAILURE_INFORMATION *PasswordChangeInfo);
NTSTATUS SamrConnect5(
/* [string][unique][in] */ PSAMPR_SERVER_NAME ServerName,
/* [in] */ ACCESS_MASK DesiredAccess,
/* [in] */ ULONG InVersion,
/* [switch_is][in] */ SAMPR_REVISION_INFO *InRevisionInfo,
/* [out] */ ULONG *OutVersion,
/* [switch_is][out] */ SAMPR_REVISION_INFO *OutRevisionInfo,
/* [out] */ SAMPR_HANDLE *ServerHandle);
NTSTATUS SamrRidToSid(
/* [in] */ SAMPR_HANDLE ObjectHandle,
/* [in] */ ULONG Rid,
/* [out] */ PRPC_SID *Sid);
NTSTATUS SamrSetDSRMPassword(
/* [in] */ handle_t BindingHandle,
/* [unique][in] */ PRPC_UNICODE_STRING ServerName,
/* [in] */ ULONG UserId,
/* [unique][in] */ PENCRYPTED_NT_OWF_PASSWORD EncryptedNtOwfPassword);
extern handle_t samsrv_handle;
extern RPC_IF_HANDLE samr_ClientIfHandle;
extern RPC_IF_HANDLE samr_ServerIfHandle;
#endif /* __samr_INTERFACE_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
handle_t __RPC_USER PSAMPR_SERVER_NAME_bind ( PSAMPR_SERVER_NAME );
void __RPC_USER PSAMPR_SERVER_NAME_unbind( PSAMPR_SERVER_NAME, handle_t );
void __RPC_USER SAMPR_HANDLE_rundown( SAMPR_HANDLE );
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif