netlogon: fill in netr_ServerGetTrustInfo IDL.
[kai/samba.git] / librpc / idl / netlogon.idl
index 7b68a8b540328737aa9594c2f82d7528bc145bc8..f09e51e30f23be18247a4434ffa42e018f3b4e61 100644 (file)
@@ -8,10 +8,14 @@ import "misc.idl", "lsa.idl", "samr.idl", "security.idl", "nbt.idl";
 
 #include "idl_types.h"
 
+cpp_quote("#define netr_DeltaEnum8Bit netr_DeltaEnum")
+cpp_quote("#define netr_SamDatabaseID8Bit netr_SamDatabaseID")
+
 [
   uuid("12345678-1234-abcd-ef00-01234567cffb"),
   version(1.0),
   endpoint("ncacn_np:[\\pipe\\netlogon]","ncacn_ip_tcp:","ncalrpc:"),
+  helper("../librpc/ndr/ndr_netlogon.h"),
   pointer_default(unique)
 ]
 
@@ -19,6 +23,8 @@ interface netlogon
 {
        typedef bitmap samr_AcctFlags samr_AcctFlags;
        typedef bitmap samr_GroupAttrs samr_GroupAttrs;
+       typedef enum netr_DeltaEnum8Bit netr_DeltaEnum8Bit;
+       typedef enum netr_SamDatabaseID8Bit netr_SamDatabaseID8Bit;
 
        /*****************/
        /* Function 0x00 */
@@ -432,7 +438,7 @@ interface netlogon
                boolean8 lm_password_present;
                boolean8 password_expired;
                lsa_String comment;
-               lsa_String parameters;
+               lsa_BinaryString parameters;
                uint16 country_code;
                uint16 code_page;
                netr_USER_PRIVATE_INFO user_private_info;
@@ -972,13 +978,13 @@ interface netlogon
                [default];
        } netr_ChangeLogObject;
 
-       typedef [public] struct {
+       typedef [public,gensize] struct {
                uint32 serial_number1;
                uint32 serial_number2;
                uint32 object_rid;
                netr_ChangeLogFlags flags;
-               uint8 db_index;
-               uint8 delta_type;
+               netr_SamDatabaseID8Bit db_index;
+               netr_DeltaEnum8Bit delta_type;
                [switch_is(flags & (NETR_CHANGELOG_SID_INCLUDED|NETR_CHANGELOG_NAME_INCLUDED))] netr_ChangeLogObject object;
        } netr_ChangeLogEntry;
 
@@ -987,8 +993,8 @@ interface netlogon
                [in]     [string,charset(UTF16)] uint16 computername[],
                [in]     netr_Authenticator *credential,
                [in,out,ref] netr_Authenticator *return_authenticator,
-               [in,ref][size_is(change_log_entry_size)] uint8 *change_log_entry,
-               [in]     uint32 change_log_entry_size,
+               [in]     [subcontext(4),subcontext_size(change_log_entry_size)] netr_ChangeLogEntry change_log_entry,
+               [in]     [value(ndr_size_netr_ChangeLogEntry(&change_log_entry, ndr->flags))] uint32 change_log_entry_size,
                [out,ref]    netr_DELTA_ENUM_ARRAY **delta_enum_array
                );
 
@@ -1494,5 +1500,23 @@ interface netlogon
 
        /****************/
        /* Function 0x2e */
-       [todo] WERROR netr_NETRSERVERGETTRUSTINFO();
+
+       typedef struct {
+               uint32 count;
+               [size_is(count)] uint32 *data;
+               uint32 entry_count;
+               [size_is(count)] lsa_String *entries;
+       } netr_TrustInfo;
+
+       NTSTATUS netr_ServerGetTrustInfo(
+               [in,unique] [string,charset(UTF16)] uint16 *server_name,
+               [in,ref] [string,charset(UTF16)] uint16 *account_name,
+               [in] netr_SchannelType secure_channel_type,
+               [in,ref] [string,charset(UTF16)] uint16 *computer_name,
+               [in,ref] netr_Authenticator *credential,
+               [out,ref] netr_Authenticator *return_authenticator,
+               [out,ref] samr_Password *new_owf_password,
+               [out,ref] samr_Password *old_owf_password,
+               [out,ref] netr_TrustInfo **trust_info
+               );
 }