From b5a3f45f645204bcc3d6caa47993b7839c8e4c99 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 12 Aug 2008 17:46:01 +1000 Subject: Add GenericInfo level for SamLogon calls from the WSPP IDL. Andrew Bartlett (This used to be commit ea58b650a81b48b0477edbcda1e4e26a3b2a9b9e) --- source4/librpc/idl/netlogon.idl | 47 +++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 14 deletions(-) (limited to 'source4/librpc/idl') diff --git a/source4/librpc/idl/netlogon.idl b/source4/librpc/idl/netlogon.idl index d8f7d2f7e6..62f1b8843a 100644 --- a/source4/librpc/idl/netlogon.idl +++ b/source4/librpc/idl/netlogon.idl @@ -123,12 +123,31 @@ interface netlogon netr_ChallengeResponse lm; } netr_NetworkInfo; - typedef [public,switch_type(uint16)] union { - [case(1)] netr_PasswordInfo *password; - [case(2)] netr_NetworkInfo *network; - [case(3)] netr_PasswordInfo *password; - [case(5)] netr_PasswordInfo *password; - [case(6)] netr_NetworkInfo *network; + typedef [flag(NDR_PAHEX)] struct { + netr_IdentityInfo identity_info; + lsa_String package_name; + uint32 length; + [size_is(length),length_is(length)] uint8 *data; + } netr_GenericInfo; + + typedef enum { + NetlogonInteractiveInformation = 1, + NetlogonNetworkInformation = 2, + NetlogonServiceInformation = 3, + NetlogonGenericInformation = 4, + NetlogonInteractiveTransitiveInformation = 5, + NetlogonNetworkTransitiveInformation = 6, + NetlogonServiceTransitiveInformation = 7 + } netr_LogonInfoClass; + + typedef [public,switch_type(netr_LogonInfoClass)] union { + [case(NetlogonInteractiveInformation)] netr_PasswordInfo *password; + [case(NetlogonNetworkInformation)] netr_NetworkInfo *network; + [case(NetlogonServiceInformation)] netr_PasswordInfo *password; + [case(NetlogonGenericInformation)] netr_GenericInfo *generic; + [case(NetlogonInteractiveTransitiveInformation)] netr_PasswordInfo *password; + [case(NetlogonNetworkTransitiveInformation)] netr_NetworkInfo *network; + [case(NetlogonServiceTransitiveInformation)] netr_PasswordInfo *password; } netr_LogonLevel; typedef [public,flag(NDR_PAHEX)] struct { @@ -239,15 +258,15 @@ interface netlogon } netr_Authenticator; NTSTATUS netr_LogonSamLogon( - [in,unique] [string,charset(UTF16)] uint16 *server_name, - [in,unique] [string,charset(UTF16)] uint16 *computer_name, - [in,unique] netr_Authenticator *credential, - [in,out,unique] netr_Authenticator *return_authenticator, - [in] uint16 logon_level, - [in] [switch_is(logon_level)] netr_LogonLevel logon, - [in] uint16 validation_level, + [in,unique] [string,charset(UTF16)] uint16 *server_name, + [in,unique] [string,charset(UTF16)] uint16 *computer_name, + [in,unique] netr_Authenticator *credential, + [in,out,unique] netr_Authenticator *return_authenticator, + [in] netr_LogonInfoClass logon_level, + [in] [switch_is(logon_level)] netr_LogonLevel logon, + [in] uint16 validation_level, [out] [switch_is(validation_level)] netr_Validation validation, - [out] uint8 authoritative + [out] uint8 authoritative ); -- cgit