summaryrefslogtreecommitdiff
path: root/source4/librpc/idl/netlogon.idl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc/idl/netlogon.idl')
-rw-r--r--source4/librpc/idl/netlogon.idl631
1 files changed, 628 insertions, 3 deletions
diff --git a/source4/librpc/idl/netlogon.idl b/source4/librpc/idl/netlogon.idl
index 049e6936ca..445f89d440 100644
--- a/source4/librpc/idl/netlogon.idl
+++ b/source4/librpc/idl/netlogon.idl
@@ -1,15 +1,640 @@
/*
- plug and play services?
+ netlogon interface
+ much of this was derived from the ethereal sources - thanks to everyone
+ who contributed!
*/
+#include "idl_types.h"
+
[
uuid(12345678-1234-abcd-ef00-01234567cffb),
version(1.0)
]
+
interface netlogon
{
-
/*****************/
/* Function 0x00 */
- WERROR netlogon_Unknown0();
+ typedef struct {
+ unistr *effective_name;
+ uint32 priv;
+ uint32 auth_flags;
+ uint32 logon_count;
+ uint32 bad_pw_count;
+ time_t last_logon;
+ time_t last_logoff;
+ time_t logoff_time;
+ time_t kickoff_time;
+ uint32 password_age;
+ time_t pw_can_change;
+ time_t pw_must_change;
+ unistr *computer;
+ unistr *domain;
+ unistr *script_path;
+ uint32 unknown;
+ } netr_UasInfo;
+
+ WERROR netr_LogonUasLogon(
+ [in] unistr *server_name,
+ [in] unistr username,
+ [in] unistr workstation,
+ [out] netr_UasInfo *info
+ );
+
+#if 0
+ typedef struct {
+ uint32 duration;
+ short logon_count;
+ } LOGOFF_UAS_INFO;
+ uint32 netr_LogonUasLogoff(
+ [in] unistr *ServerName,
+ [in][ref][string] wchar_t *UserName,
+ [in][ref][string] wchar_t *Workstation,
+ [out][ref] LOGOFF_UAS_INFO *info
+ );
+ typedef struct {
+ UNICODESTRING LogonDomainName;
+ uint32 ParameterControl;
+ uint64 LogonID;
+ UNICODESTRING UserName;
+ UNICODESTRING Workstation;
+ } LOGON_IDENTITY_INFO;
+ typedef struct {
+ char password[16];
+ } LM_OWF_PASSWORD;
+ typedef struct {
+ char password[16];
+ } NT_OWF_PASSWORD;
+ typedef struct {
+ LOGON_IDENTITY_INFO identity_info;
+ LM_OWF_PASSWORD lmpassword;
+ NT_OWF_PASSWORD ntpassword;
+ } INTERACTIVE_INFO;
+ typedef struct {
+ char chl[8];
+ } CHALLENGE;
+ typedef struct {
+ LOGON_IDENTITY_INFO logon_info;
+ CHALLENGE chal;
+ STRING ntchallengeresponse;
+ STRING lmchallengeresponse;
+ } NETWORK_INFO;
+ typedef struct {
+ LOGON_IDENTITY_INFO logon_info;
+ LM_OWF_PASSWORD lmpassword;
+ NT_OWF_PASSWORD ntpassword;
+ } SERVICE_INFO;
+ typedef [switch_type(short)] union {
+ [case(1)][unique] INTERACTIVE_INFO *iinfo;
+ [case(2)][unique] NETWORK_INFO *ninfo;
+ [case(3)][unique] SERVICE_INFO *sinfo;
+ } LEVEL;
+ typedef struct {
+ char cred[8];
+ } CREDENTIAL;
+ typedef struct {
+ CREDENTIAL cred;
+ uint32 timestamp;
+ } AUTHENTICATOR;
+ typedef struct {
+ uint32 user_id;
+ uint32 attributes;
+ } GROUP_MEMBERSHIP;
+ typedef struct {
+ char user_session_key[16];
+ } USER_SESSION_KEY;
+ typedef struct {
+ uint64 LogonTime;
+ uint64 LogoffTime;
+ uint64 KickOffTime;
+ uint64 PasswdLastSet;
+ uint64 PasswdCanChange;
+ uint64 PasswdMustChange;
+ unicodestring effectivename;
+ unicodestring fullname;
+ unicodestring logonscript;
+ unicodestring profilepath;
+ unicodestring homedirectory;
+ unicodestring homedirectorydrive;
+ short LogonCount;
+ short BadPasswdCount;
+ uint32 userid;
+ uint32 primarygroup;
+ uint32 groupcount;
+ [unique][size_is(groupcount)] GROUP_MEMBERSHIP *groupids;
+ uint32 userflags;
+ USER_SESSION_KEY key;
+ unicodestring logonserver;
+ unicodestring domainname;
+ [unique] SID logondomainid;
+ uint32 expansionroom[10];
+ } VALIDATION_SAM_INFO;
+ typedef struct {
+ uint64 LogonTime;
+ uint64 LogoffTime;
+ uint64 KickOffTime;
+ uint64 PasswdLastSet;
+ uint64 PasswdCanChange;
+ uint64 PasswdMustChange;
+ unicodestring effectivename;
+ unicodestring fullname;
+ unicodestring logonscript;
+ unicodestring profilepath;
+ unicodestring homedirectory;
+ unicodestring homedirectorydrive;
+ short LogonCount;
+ short BadPasswdCount;
+ uint32 userid;
+ uint32 primarygroup;
+ uint32 groupcount;
+ [unique] GROUP_MEMBERSHIP *groupids;
+ uint32 userflags;
+ USER_SESSION_KEY key;
+ unicodestring logonserver;
+ unicodestring domainname;
+ [unique] SID logondomainid;
+ uint32 expansionroom[10];
+ uint32 sidcount;
+ [unique] SID_AND_ATTRIBS;
+ } VALIDATION_SAM_INFO2;
+ typedef struct {
+ uint32 pac_size
+ [unique][size_is(pac_size)] char *pac;
+ UNICODESTRING logondomain;
+ UNICODESTRING logonserver;
+ UNICODESTRING principalname;
+ uint32 auth_size;
+ [unique][size_is(auth_size)] char *auth;
+ USER_SESSION_KEY user_session_key;
+ uint32 expansionroom[10];
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ } VALIDATION_PAC_INFO;
+ typedef [switch_type(short)] union {
+ [case(2)][unique] VALIDATION_SAM_INFO *sam;
+ [case(3)][unique] VALIDATION_SAM_INFO2 *sam2;
+ [case(4)][unique] VALIDATION_PAC_INFO *pac;
+ [case(5)][unique] VALIDATION_PAC_INFO *pac2;
+ } VALIDATION;
+ uint32 netr_LogonSamLogon(
+ [in] unistr *ServerName,
+ [in] unistr *Workstation,
+ [in][unique] AUTHENTICATOR *credential,
+ [in][out][unique] AUTHENTICATOR *returnauthenticator,
+ [in] short LogonLevel,
+ [in][ref] LOGON_LEVEL *logonlevel,
+ [in] short ValidationLevel,
+ [out][ref] VALIDATION *validation,
+ [out][ref] boolean Authorative
+ );
+ uint32 netr_LogonSamLogoff(
+ [in] unistr *ServerName,
+ [in] unistr *ComputerName,
+ [in][unique] AUTHENTICATOR credential,
+ [in][unique] AUTHENTICATOR return_authenticator,
+ [in] short logon_level,
+ [in][ref] LEVEL logoninformation
+ );
+ uint32 netr_ServerReqChallenge(
+ [in] unistr *ServerName,
+ [in][ref][string] wchar_t *ComputerName,
+ [in][ref] CREDENTIAL client_credential,
+ [out][ref] CREDENTIAL server_credential
+ );
+ uint32 netr_ServerAuthenticate(
+ [in] unistr *ServerName,
+ [in][ref][string] wchar_t *UserName,
+ [in] short secure_challenge_type,
+ [in][ref][string] wchar_t *ComputerName,
+ [in][ref] CREDENTIAL client_challenge,
+ [out][ref] CREDENTIAL server_challenge
+ );
+ typedef struct {
+ char encrypted_password[16];
+ } ENCRYPTED_LM_OWF_PASSWORD;
+ uint32 netr_ServerPasswordSet(
+ [in] unistr *ServerName,
+ [in][ref][string] wchar_t *UserName,
+ [in] short secure_challenge_type,
+ [in][ref][string] wchar_t *ComputerName,
+ [in][ref] AUTHENTICATOR credential,
+ [in][ref] LM_OWF_PASSWORD UasNewPassword,
+ [out][ref] AUTHENTICATOR return_authenticator
+ );
+ typedef struct {
+ unistr *UserName;
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ uint32 dummy5;
+ uint32 dummy6;
+ uint32 dummy7;
+ uint32 dummy8;
+ } DELTA_DELETE_USER;
+ typedef struct {
+ bool SensitiveDataFlag;
+ uint32 DataLength;
+ [unique][size_is(DataLength)] char *SensitiveData;
+ } USER_PRIVATE_INFO;
+ typedef struct {
+ UNICODESTRING UserName;
+ UNICODESTRING FullName;
+ uint32 UserID;
+ uint32 PrimaryGroupID;
+ UNICODESTRING HomeDir;
+ UNICODESTRING HomeDirDrive;
+ UNICODESTRING LogonScript;
+ UNICODESTRING Comment;
+ UNICODESTRING Workstations;
+ NTTIME LastLogon;
+ NTTIME LastLogoff;
+ LOGON_HOURS logonhours;
+ short BadPwCount;
+ short LogonCount;
+ NTTIME PwLastSet;
+ NTTIME AccountExpires;
+ uint32 AccountControl;
+ LM_OWF_PASSWORD lmpw;
+ NT_OWF_PASSWORD ntpw;
+ bool NTPwPresent;
+ bool LMPwPresent;
+ bool PwExpired;
+ UNICODESTRING UserComment;
+ UNICODESTRING Parameters;
+ short CountryCode;
+ short CodePage;
+ USER_PRIVATE_INFO user_private_info;
+ uint32 SecurityInformation;
+ LSA_SECURITY_DESCRIPTOR sec_desc;
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ uint32 dummy5;
+ uint32 dummy6;
+ uint32 dummy7;
+ uint32 dummy8;
+ } DELTA_USER;
+ typedef struct {
+ UNICODESTRING DomainName;
+ UNICODESTRING OEMInfo;
+ NTTIME forcedlogoff;
+ short minpasswdlen;
+ short passwdhistorylen;
+ NTTIME pwd_must_change_time;
+ NTTIME pwd_can_change_time;
+ NTTIME domain_modify_time;
+ NTTIME domain_create_time;
+ uint32 SecurityInformation;
+ LSA_SECURITY_DESCRIPTOR sec_desc;
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ uint32 dummy5;
+ uint32 dummy6;
+ uint32 dummy7;
+ uint32 dummy8;
+ } DELTA_DOMAIN;
+ typedef struct {
+ UNICODESTRING groupname;
+ GROUP_MEMBERSHIP group_membership;
+ UNICODESTRING comment;
+ uint32 SecurityInformation;
+ LSA_SECURITY_DESCRIPTOR sec_desc;
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ uint32 dummy5;
+ uint32 dummy6;
+ uint32 dummy7;
+ uint32 dummy8;
+ } DELTA_GROUP;
+ typedef struct {
+ UNICODESTRING OldName;
+ UNICODESTRING NewName;
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ uint32 dummy5;
+ uint32 dummy6;
+ uint32 dummy7;
+ uint32 dummy8;
+ } DELTA_RENAME;
+ typedef struct {
+ [unique][size_is(num_rids)] uint32 *rids;
+ [unique][size_is(num_rids)] uint32 *attribs;
+ uint32 num_rids;
+ uint32 dummy1;
+ uint32 dummy2;
+ uint32 dummy3;
+ uint32 dummy4;
+ } DELTA_GROUP_MEMBER;
+ typedef struct {
+ UNICODESTRING alias_name;
+ uint32 rid;
+ uint32 SecurityInformation;
+ LSA_SECURITY_DESCRIPTOR sec_desc;
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ uint32 dummy5;
+ uint32 dummy6;
+ uint32 dummy7;
+ uint32 dummy8;
+ } DELTA_ALIAS;
+ typedef struct {
+ [unique] SID_ARRAY sids;
+ uint32 dummy1;
+ uint32 dummy2;
+ uint32 dummy3;
+ uint32 dummy4;
+ } DELTA_ALIAS_MEMBER;
+ typedef struct {
+ uint32 pagedpoollimit;
+ uint32 nonpagedpoollimit;
+ uint32 minimumworkingsetsize;
+ uint32 maximumworkingsetsize;
+ uint32 pagefilelimit;
+ NTTIME timelimit;
+ } QUOTA_LIMITS;
+ typedef struct {
+ uint32 maxlogsize;
+ NTTIME auditretentionperiod;
+ bool auditingmode;
+ uint32 maxauditeventcount;
+ [unique][size_is(maxauditeventcount)] uint32 *eventauditoptions;
+ UNICODESTRING primarydomainname;
+ [unique] SID *sid;
+ QUOTA_LIMITS quota_limits;
+ NTTIME db_modify_time;
+ NTTIME db_create_time;
+ uint32 SecurityInformation;
+ LSA_SECURITY_DESCRIPTOR sec_desc;
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ uint32 dummy5;
+ uint32 dummy6;
+ uint32 dummy7;
+ uint32 dummy8;
+ } DELTA_POLICY;
+ typedef struct {
+ UNICODESTRING DomainName;
+ uint32 num_controllers;
+ [unique][size_is(num_controllers)] UNICODESTRING *controller_names;
+ uint32 SecurityInformation;
+ LSA_SECURITY_DESCRIPTOR sec_desc;
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ uint32 dummy5;
+ uint32 dummy6;
+ uint32 dummy7;
+ uint32 dummy8;
+ } DELTA_TRUSTED_DOMAINS;
+ typedef struct {
+ uint32 privilegeentries;
+ uint32 provolegecontrol;
+ [unique][size_is(privilege_entries)] uint32 *privilege_attrib;
+ [unique][size_is(privilege_entries)] UNICODESTRING *privilege_name;
+ QUOTALIMITS quotalimits;
+ uint32 SecurityInformation;
+ LSA_SECURITY_DESCRIPTOR sec_desc;
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ uint32 dummy5;
+ uint32 dummy6;
+ uint32 dummy7;
+ uint32 dummy8;
+ } DELTA_ACCOUNTS;
+ typedef struct {
+ uint32 len;
+ uint32 maxlen;
+ [unique][size_is(maxlen)][length_is(len)] char *cipher_data;
+ } CIPHER_VALUE;
+ typedef struct {
+ CIPHER_VALUE current_cipher;
+ NTTIME current_cipher_set_time;
+ CIPHER_VALUE old_cipher;
+ NTTIME old_cipher_set_time;
+ uint32 SecurityInformation;
+ LSA_SECURITY_DESCRIPTOR sec_desc;
+ UNICODESTRING dummy1;
+ UNICODESTRING dummy2;
+ UNICODESTRING dummy3;
+ UNICODESTRING dummy4;
+ uint32 dummy5;
+ uint32 dummy6;
+ uint32 dummy7;
+ uint32 dummy8;
+ } DELTA_SECRET;
+ typedef struct {
+ uint32 low_value;
+ uint32 high_value;
+ } xxx;
+
+ typedef [switch_type(short)] union {
+ [case(1)][unique] DELTA_DOMAIN *domain;
+ [case(2)][unique] DELTA_GROUP *group;
+ [case(4)][unique] DELTA_RENAME_GROUP *rename_group;
+ [case(5)][unique] DELTA_USER *user;
+ [case(7)][unique] DELTA_RENAME_USER *rename_user;
+ [case(8)][unique] DELTA_GROUP_MEMBER *group_member;
+ [case(9)][unique] DELTA_ALIAS *alias;
+ [case(11)][unique] DELTA_RENAME_ALIAS *rename_alias;
+ [case(12)][unique] DELTA_ALIAS_MEMBER *alias_member;
+ [case(13)][unique] DELTA_POLICY *policy;
+ [case(14)][unique] DELTA_TRUSTED_DOMAINS *trusted_domains;
+ [case(16)][unique] DELTA_ACCOUNTS *accounts;
+ [case(18)][unique] DELTA_SECRET *secret;
+ [case(20)][unique] DELTA_DELETE_USER *delete_group;
+ [case(21)][unique] DELTA_DELETE_USER *delete_user;
+ [case(22)][unique] MODIFIED_COUNT *modified_count;
+ } DELTA_UNION;
+
+ typedef [switch_type(short)] union {
+ [case(1)] uint32 rid;
+ [case(2)] uint32 rid;
+ [case(3)] uint32 rid;
+ [case(4)] uint32 rid;
+ [case(5)] uint32 rid;
+ [case(6)] uint32 rid;
+ [case(7)] uint32 rid;
+ [case(8)] uint32 rid;
+ [case(9)] uint32 rid;
+ [case(10)] uint32 rid;
+ [case(11)] uint32 rid;
+ [case(12)] uint32 rid;
+ [case(13)] [unique] SID *sid;
+ [case(14)] [unique] SID *sid;
+ [case(15)] [unique] SID *sid;
+ [case(16)] [unique] SID *sid;
+ [case(17)] [unique] SID *sid;
+ [case(18)] unistr *Name ;
+ [case(19)] unistr *Name ;
+ [case(20)] uint32 rid;
+ [case(21)] uint32 rid;
+ } DELTA_ID_UNION;
+ typedef struct {
+ short delta_type;
+ DELTA_ID_UNION delta_id_union;
+ DELTA_UNION delta_union;
+ } DELTA_ENUM;
+ typedef struct {
+ uint32 num_deltas;
+ [unique][size_is(num_deltas)] DELTA_ENUM *delta_enum;
+ } DELTA_ENUM_ARRAY;
+ uint32 netr_DatabaseDeltas(
+ [in][string][ref] wchar_t *logonserver, # REF!!!
+ [in][string][ref] wchar_t *computername,
+ [in][ref] AUTHENTICATOR credential,
+ [in][out][ref] AUTHENTICATOR return_authenticator,
+ [in] uint32 database_id,
+ [in][out][ref] MODIFIED_COUNT domain_modify_count,
+ [in] uint32 preferredmaximumlength,
+ [out][unique] DELTA_ENUM_ARRAY *delta_enum_array
+ );
+ uint32 netr_DatabaseSync(
+ [in][string][ref] wchar_t *logonserver, # REF!!!
+ [in][string][ref] wchar_t *computername,
+ [in][ref] AUTHENTICATOR credential,
+ [in][out][ref] AUTHENTICATOR return_authenticator,
+ [in] uint32 database_id,
+ [in][out][ref] uint32 sync_context,
+ [in] uint32 preferredmaximumlength,
+ [out][unique] DELTA_ENUM_ARRAY *delta_enum_array
+ );
+ typedef struct {
+ char computer_name[16];
+ uint32 timecreated;
+ uint32 serial_number;
+ } UAS_INFO_0;
+ uint32 netr_AccountDeltas(
+ [in][string][unique] wchar_t *logonserver,
+ [in][string][ref] wchar_t *computername,
+ [in][ref] AUTHENTICATOR credential,
+ [in][out][ref] AUTHENTICATOR return_authenticator,
+ [out][ref][size_is(count_returned)] char *Buffer,
+ [out][ref] uint32 count_returned,
+ [out][ref] uint32 total_entries,
+ [in][out][ref] UAS_INFO_0 recordid,
+ [in][long] count,
+ [in][long] level,
+ [in][long] buffersize,
+ );
+ uint32 netr_AccountSync(
+ [in][string][unique] wchar_t *logonserver,
+ [in][string][ref] wchar_t *computername,
+ [in][ref] AUTHENTICATOR credential,
+ [in][out][ref] AUTHENTICATOR return_authenticator,
+ [out][ref][size_is(count_returned)] char *Buffer,
+ [out][ref] uint32 count_returned,
+ [out][ref] uint32 total_entries,
+ [out][ref] uint32 next_reference,
+ [in][long] reference,
+ [in][long] level,
+ [in][long] buffersize,
+ [in][out][ref] UAS_INFO_0 recordid,
+ );
+ uint32 netr_GetDcName(
+ [in][ref][string] wchar_t *logon_server,
+ [in] unistr *domainname,
+ [out]unistr *dcname,
+ };
+ typedef struct {
+ uint32 flags;
+ uint32 pdc_connection_status;
+ } NETLOGON_INFO_1;
+ typedef struct {
+ uint32 flags;
+ uint32 pdc_connection_status;
+ unistrtrusted_dc_name;
+ uint32 tc_connection_status;
+ } NETLOGON_INFO_2;
+ typedef struct {
+ uint32 flags;
+ uint32 logon_attempts;
+ uint32 reserved;
+ uint32 reserved;
+ uint32 reserved;
+ uint32 reserved;
+ uint32 reserved;
+ } NETLOGON_INFO_3;
+ typedef [switch_type(long)] union {
+ [case(1)] [unique] NETLOGON_INFO_1 *i1;
+ [case(2)] [unique] NETLOGON_INFO_2 *i2;
+ [case(3)] [unique] NETLOGON_INFO_3 *i3;
+ } CONTROL_QUERY_INFORMATION;
+ uint32 netr_LogonControl(
+ [in][string][unique] wchar_t *logonserver,
+ [in] uint32 function_code,
+ [in] uint32 level,
+ [out][ref] CONTROL_QUERY_INFORMATION
+ );
+ uint32 netr_GetAnyDCName(
+ [in] unistr *logon_server,
+ [in] unistr *domainname,
+ [out]unistr *dcname,
+ };
+ typedef [switch_type(long)] union {
+ [case(5)] unistr *unknown;
+ [case(6)] unistr *unknown;
+ [case(0xfffe)] uint32 unknown;
+ [case(7)] unistry*unknown;
+ } CONTROL_DATA_INFORMATION;
+ uint32 netr_LogonControl2(
+ [in][string][unique] wchar_t *logonserver,
+ [in] uint32 function_code,
+ [in] uint32 level,
+ [in][ref] CONTROL_DATA_INFORMATION *data,
+ [out][ref] CONTROL_QUERY_INFORMATION *query
+ );
+ uint32 netr_ServerAuthenticate2(
+ [in][string][unique] wchar_t *logonserver,
+ [in][ref][string] wchar_t *username,
+ [in] short secure_channel_type,
+ [in][ref][string] wchar_t *computername,
+ [in][ref] CREDENTIAL *client_chal,
+ [out][ref] CREDENTIAL *server_chal,
+ [in][out][ref] uint32 *negotiate_flags,
+ );
+ uint32 netr_DatabaseSync2(
+ [in][string][ref] wchar_t *logonserver, # REF!!!
+ [in][string][ref] wchar_t *computername,
+ [in][ref] AUTHENTICATOR credential,
+ [in][out][ref] AUTHENTICATOR return_authenticator,
+ [in] uint32 database_id,
+ [in] short restart_state,
+ [in][out][ref] uint32 *sync_context,
+ [in] uint32 preferredmaximumlength,
+ [out][unique] DELTA_ENUM_ARRAY *delta_enum_array
+ );
+ uint32 netr_DatabaseRedo(
+ [in][string][ref] wchar_t *logonserver, # REF!!!
+ [in][string][ref] wchar_t *computername,
+ [in][ref] AUTHENTICATOR credential,
+ [in][out][ref] AUTHENTICATOR return_authenticator,
+ [in][ref][size_is(change_log_entry_size)] char *change_log_entry,
+ [in] uint32 change_log_entry_size,
+ [out][unique] DELTA_ENUM_ARRAY *delta_enum_array
+ );
+ uint32 netr_LogonControl2Ex(
+ [in][string][unique] wchar_t *logonserver,
+ [in] uint32 function_code,
+ [in] uint32 level,
+ [in][ref] CONTROL_DATA_INFORMATION *data,
+ [out][ref] CONTROL_QUERY_INFORMATION *query
+ );
+#endif
}