misc.idl: Add reference to the slightly odd representation of if_version
[abartlet/samba.git/.git] / librpc / idl / misc.idl
index 1ef0d913b9c429deb9e3163163010427332126ca..a60d30bef2c450e02c5ab008f45b07ebc74f0653 100644 (file)
@@ -1,8 +1,12 @@
+#include "idl_types.h"
+
 /*
   miscellaneous IDL structures
 */
 
+
 [
+       pyhelper("librpc/ndr/py_misc.c"),
        pointer_default(unique)
 ]
 interface misc
@@ -17,6 +21,9 @@ interface misc
 
        typedef [public] struct {
                GUID uuid;
+               /* The major version is encoded in the 16 least significant bits, 
+                  the minor in the 16 most significant bits.  
+                  http://www.opengroup.org/onlinepubs/9629399/chap12.htm */
                uint32 if_version;
        } ndr_syntax_id;
 
@@ -35,4 +42,36 @@ interface misc
                SEC_CHAN_DOMAIN      = 4,
                SEC_CHAN_BDC         = 6
        } netr_SchannelType;
+
+       typedef [public] struct {
+               NTSTATUS ntstatus;
+               uint32 unknown1;
+               uint32 unknown2; /* 0x00000001 */
+       } KRB5_EDATA_NTSTATUS;
+
+       typedef [public,v1_enum] enum {
+               REG_NONE                       = 0,
+               REG_SZ                         = 1,
+               REG_EXPAND_SZ                  = 2,
+               REG_BINARY                     = 3,
+               REG_DWORD                      = 4,
+               REG_DWORD_BIG_ENDIAN           = 5,
+               REG_LINK                       = 6,
+               REG_MULTI_SZ                   = 7,
+               REG_RESOURCE_LIST              = 8,
+               REG_FULL_RESOURCE_DESCRIPTOR   = 9,
+               REG_RESOURCE_REQUIREMENTS_LIST = 10,
+               REG_QWORD                      = 11
+       } winreg_Type;
+
+       typedef [nodiscriminant,public,flag(NDR_LITTLE_ENDIAN)] union {
+               [case(REG_NONE)];
+               [case(REG_SZ)] nstring string;
+               [case(REG_EXPAND_SZ)] nstring string;
+               [case(REG_BINARY),flag(NDR_REMAINING)] DATA_BLOB binary;
+               [case(REG_DWORD)] uint32 value;
+               [case(REG_DWORD_BIG_ENDIAN),flag(NDR_BIG_ENDIAN)] uint32 value;
+               [case(REG_MULTI_SZ)] nstring_array string_array;
+               [default,flag(NDR_REMAINING)] DATA_BLOB data;
+       } winreg_Data;
 }