netlogon: add NL_PASSWORD_VERSION to IDL.
[ira/wip.git] / librpc / idl / netlogon.idl
index c34059a411c837e4b3af84133d5f0b830ea81442..82a60c7c3e422a95204ba945e9517f4a982db0aa 100644 (file)
@@ -831,21 +831,26 @@ interface netlogon
        /* Function 0x0C */
 
        typedef [bitmap32bit] bitmap {
-               NETLOGON_CTRL_REPL_NEEDED       = 0x0001,
-               NETLOGON_CTRL_REPL_IN_PROGRESS  = 0x0002,
-               NETLOGON_CTRL_REPL_FULL_SYNC    = 0x0004
+               NETLOGON_REPLICATION_NEEDED             = 0x00000001,
+               NETLOGON_REPLICATION_IN_PROGRESS        = 0x00000002,
+               NETLOGON_FULL_SYNC_REPLICATION          = 0x00000004,
+               NETLOGON_REDO_NEEDED                    = 0x00000008,
+               NETLOGON_HAS_IP                         = 0x00000010,
+               NETLOGON_HAS_TIMESERV                   = 0x00000020,
+               NETLOGON_DNS_UPDATE_FAILURE             = 0x00000040,
+               NETLOGON_VERIFY_STATUS_RETURNED         = 0x00000080
        } netr_InfoFlags;
 
        typedef struct {
                netr_InfoFlags flags;
-               uint32 pdc_connection_status;
+               WERROR pdc_connection_status;
        } netr_NETLOGON_INFO_1;
 
        typedef struct {
                netr_InfoFlags flags;
-               uint32 pdc_connection_status;
+               WERROR pdc_connection_status;
                [string,charset(UTF16)] uint16 *trusted_dc_name;
-               uint32 tc_connection_status;
+               WERROR tc_connection_status;
        } netr_NETLOGON_INFO_2;
 
        typedef struct {
@@ -868,6 +873,7 @@ interface netlogon
                [case(2)]  netr_NETLOGON_INFO_2 *info2;
                [case(3)]  netr_NETLOGON_INFO_3 *info3;
                [case(4)]  netr_NETLOGON_INFO_4 *info4;
+               [default] ;
        } netr_CONTROL_QUERY_INFORMATION;
 
        /* function_code values */
@@ -919,6 +925,7 @@ interface netlogon
                [case(NETLOGON_CONTROL_TC_VERIFY)]         [string,charset(UTF16)] uint16 *domain;
                [case(NETLOGON_CONTROL_FIND_USER)]         [string,charset(UTF16)] uint16 *user;
                [case(NETLOGON_CONTROL_SET_DBFLAG)]        uint32 debug_level;
+               [default] ;
        } netr_CONTROL_DATA_INFORMATION;
 
        WERROR netr_LogonControl2(
@@ -937,7 +944,7 @@ interface netlogon
        /*****************/
        /* Function 0x0F */
 
-       typedef [bitmap32bit] bitmap {
+       typedef [public,bitmap32bit] bitmap {
                NETLOGON_NEG_ACCOUNT_LOCKOUT            = 0x00000001,
                NETLOGON_NEG_PERSISTENT_SAMREPL         = 0x00000002,
                NETLOGON_NEG_ARCFOUR                    = 0x00000004,
@@ -961,6 +968,7 @@ interface netlogon
                NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION   = 0x00100000,
                NETLOGON_NEG_RODC_PASSTHROUGH           = 0x00200000,
                NETLOGON_NEG_SUPPORTS_AES_SHA2          = 0x00400000,
+               NETLOGON_NEG_SUPPORTS_AES               = 0x01000000,
                NETLOGON_NEG_AUTHENTICATED_RPC_LSASS    = 0x20000000,
                NETLOGON_NEG_AUTHENTICATED_RPC          = 0x40000000
        } netr_NegotiateFlags;
@@ -1111,6 +1119,7 @@ interface netlogon
                DS_IS_DNS_NAME                  = 0x00020000,
                DS_TRY_NEXTCLOSEST_SITE         = 0x00040000,
                DS_DIRECTORY_SERVICE_6_REQUIRED = 0x00080000,
+               DS_WEB_SERVICE_REQUIRED         = 0x00100000,
                DS_RETURN_DNS_NAME              = 0x40000000,
                DS_RETURN_FLAT_NAME             = 0x80000000
        } netr_DsRGetDCName_flags;
@@ -1133,9 +1142,9 @@ interface netlogon
                DS_SERVER_NDNC                   = NBT_SERVER_NDNC,
                DS_SERVER_SELECT_SECRET_DOMAIN_6 = NBT_SERVER_SELECT_SECRET_DOMAIN_6,
                DS_SERVER_FULL_SECRET_DOMAIN_6   = NBT_SERVER_FULL_SECRET_DOMAIN_6,
-               DS_DNS_CONTROLLER                = 0x20000000,
-               DS_DNS_DOMAIN                    = 0x40000000,
-               DS_DNS_FOREST                    = 0x80000000
+               DS_DNS_CONTROLLER                = NBT_SERVER_HAS_DNS_NAME,
+               DS_DNS_DOMAIN                    = NBT_SERVER_IS_DEFAULT_NC,
+               DS_DNS_FOREST_ROOT               = NBT_SERVER_FOREST_ROOT
        } netr_DsR_DcFlags;
 
        typedef [public] struct {
@@ -1278,7 +1287,7 @@ interface netlogon
                uint32 MinorVersion;
                uint32 BuildNumber;
                uint32 PlatformId;
-               [charset(UTF16)] uint16 CSDVersion[128];
+               [subcontext(0),subcontext_size(256)] nstring CSDVersion;
                uint16 ServicePackMajor;
                uint16 ServicePackMinor;
                netr_SuiteMask SuiteMask;
@@ -1348,32 +1357,40 @@ interface netlogon
        } netr_trust_extension_container;
 
        typedef struct {
-               lsa_String domainname;
-               lsa_String dns_domainname;
-               lsa_String dns_forestname;
+               lsa_StringLarge domainname;
+               lsa_StringLarge dns_domainname;
+               lsa_StringLarge dns_forestname;
                GUID domain_guid;
                dom_sid2 *domain_sid;
                netr_trust_extension_container trust_extension;
-               lsa_String dummy_string2;
-               lsa_String dummy_string3;
-               lsa_String dummy_string4;
+               lsa_StringLarge dummy_string2;
+               lsa_StringLarge dummy_string3;
+               lsa_StringLarge dummy_string4;
                uint32 dummy_long1;
                uint32 dummy_long2;
                uint32 dummy_long3;
                uint32 dummy_long4;
        } netr_OneDomainInfo;
 
+       typedef [public,bitmap32bit] bitmap {
+               ENC_CRC32 = 0x00000001,
+               ENC_RSA_MD5 = 0x00000002,
+               ENC_RC4_HMAC_MD5 = 0x00000004,
+               ENC_HMAC_SHA1_96_AES128  = 0x00000008,
+               ENC_HMAC_SHA1_96_AES256  = 0x00000010
+       } netr_SupportedEncTypes;
+
        typedef struct {
                netr_OneDomainInfo primary_domain;
                uint32 trusted_domain_count;
                [size_is(trusted_domain_count)] netr_OneDomainInfo *trusted_domains;
                netr_LsaPolicyInformation lsa_policy;
-               lsa_String dns_hostname;
-               lsa_String dummy_string2;
-               lsa_String dummy_string3;
-               lsa_String dummy_string4;
+               lsa_StringLarge dns_hostname;
+               lsa_StringLarge dummy_string2;
+               lsa_StringLarge dummy_string3;
+               lsa_StringLarge dummy_string4;
                netr_WorkstationFlags workstation_flags;
-               uint32 supported_enc_types;
+               netr_SupportedEncTypes supported_enc_types;
                uint32 dummy_long3;
                uint32 dummy_long4;
        } netr_DomainInformation;
@@ -1395,6 +1412,18 @@ interface netlogon
 
        /*****************/
        /* Function 0x1e */
+
+       /* [MS-NRPC] 2.2.1.3.8 NL_PASSWORD_VERSION */
+
+       /* someone's birthday ? */
+       const int NETLOGON_PASSWORD_VERSION_NUMBER_PRESENT = 0x02231968;
+
+       typedef struct {
+               uint32 ReservedField;
+               uint32 PasswordVersionNumber;
+               uint32 PasswordVersionPresent;
+       } NL_PASSWORD_VERSION;
+
        typedef [flag(NDR_PAHEX)] struct {
                uint8 data[512];
                uint32 length;