Merge of new 2.2 code into HEAD (Gerald I hate you :-) :-). Allows new SAMR
[bbaumbach/samba-autobuild/.git] / source / include / rpc_lsa.h
index 53bb605cac8cfbf075d91de6ef1a8c33d1c1f269..ad7fa31365e844d2a4cac8b20dd9523fd5b5b944 100644 (file)
@@ -28,6 +28,7 @@
 
 enum SID_NAME_USE
 {
+       SID_NAME_USE_NONE = 0,/* NOTUSED */
        SID_NAME_USER    = 1, /* user */
        SID_NAME_DOM_GRP = 2, /* domain group */
        SID_NAME_DOMAIN  = 3, /* domain: don't know what this is */
@@ -70,6 +71,21 @@ typedef struct dom_query_info
 typedef DOM_QUERY DOM_QUERY_3;
 typedef DOM_QUERY DOM_QUERY_5;
 
+/* level 2 is auditing settings */
+typedef struct dom_query_2
+{
+       uint32 auditing_enabled;
+       uint32 count1; /* usualy 7, at least on nt4sp4 */
+       uint32 count2; /* the same */
+       uint32 *auditsettings;
+} DOM_QUERY_2;
+
+/* level 6 is server role information */
+typedef struct dom_query_6
+{
+       uint16 server_role; /* 2=backup, 3=primary */
+} DOM_QUERY_6;
+
 typedef struct seq_qos_info
 {
        uint32 len; /* 12 */
@@ -156,18 +172,22 @@ typedef struct lsa_query_info
 
 } LSA_Q_QUERY_INFO;
 
+/* LSA_INFO_UNION */
+typedef union lsa_info_union
+{
+       DOM_QUERY_2 id2;
+       DOM_QUERY_3 id3;
+       DOM_QUERY_5 id5;
+       DOM_QUERY_6 id6;
+} LSA_INFO_UNION;
+
 /* LSA_R_QUERY_INFO - response to LSA query info policy */
 typedef struct lsa_r_query_info
 {
     uint32 undoc_buffer; /* undocumented buffer pointer */
     uint16 info_class; /* info class (same as info class in request) */
-    
-       union
-    {
-        DOM_QUERY_3 id3;
-               DOM_QUERY_5 id5;
-
-    } dom;
+   
+       LSA_INFO_UNION dom; 
 
        uint32 status; /* return code */
 
@@ -190,12 +210,12 @@ typedef struct lsa_r_enum_trust_dom_info
        uint32 ptr_enum_domains; /* buffer pointer to num domains */
 
        /* this lot is only added if ptr_enum_domains is non-NULL */
-               uint32 num_domains2; /* number of domains */
-               UNIHDR2 hdr_domain_name;
-               UNISTR2 uni_domain_name;
-               DOM_SID2 other_domain_sid;
+       uint32 num_domains2; /* number of domains */
+       UNIHDR2 *hdr_domain_name;
+       UNISTR2 *uni_domain_name;
+       DOM_SID2 *domain_sid;
 
-    uint32 status; /* return code */
+       uint32 status; /* return code */
 
 } LSA_R_ENUM_TRUST_DOM;
 
@@ -341,4 +361,23 @@ typedef struct lsa_r_lookup_names
 
 } LSA_R_LOOKUP_NAMES;
 
+/* This is probably a policy handle but at the moment we
+   never read it - so use a dummy struct. */
+
+typedef struct lsa_q_open_secret
+{
+       uint32 dummy;
+} LSA_Q_OPEN_SECRET;
+
+/* We always return "not found" at present - so just marshal the minimum. */
+
+typedef struct lsa_r_open_secret
+{
+       uint32 dummy1;
+       uint32 dummy2;
+       uint32 dummy3;
+       uint32 dummy4;
+       uint32 status;
+} LSA_R_OPEN_SECRET;
+
 #endif /* _RPC_LSA_H */