52d4f88a63c2e95c18d66d9f0926b5aab9092840
[samba.git] / librpc / idl / misc.idl
1 #include "idl_types.h"
2
3 /*
4   miscellaneous IDL structures
5 */
6
7
8 [
9         pyhelper("librpc/ndr/py_misc.c"),
10         pointer_default(unique)
11 ]
12 interface misc
13 {
14         typedef [public,noprint,gensize] struct {
15                 uint32 time_low;
16                 uint16 time_mid;
17                 uint16 time_hi_and_version;
18                 uint8  clock_seq[2];
19                 uint8  node[6];
20         } GUID;
21
22         typedef [public] struct {
23                 GUID uuid;
24                 /* The major version is encoded in the 16 least significant bits, 
25                    the minor in the 16 most significant bits.  
26                    http://www.opengroup.org/onlinepubs/9629399/chap12.htm */
27                 uint32 if_version;
28         } ndr_syntax_id;
29
30         typedef [public] struct {
31                 uint32 handle_type;
32                 GUID   uuid;
33         } policy_handle;
34
35         /* secure channel types */
36         /* Only SEC_CHAN_WKSTA can forward requests to other domains. */
37
38         typedef [public] enum {
39                 SEC_CHAN_NULL        = 0,
40                 SEC_CHAN_LOCAL       = 1,
41                 SEC_CHAN_WKSTA       = 2,
42                 SEC_CHAN_DNS_DOMAIN  = 3,
43                 SEC_CHAN_DOMAIN      = 4,
44                 SEC_CHAN_LANMAN      = 5,
45                 SEC_CHAN_BDC         = 6,
46                 SEC_CHAN_RODC        = 7
47         } netr_SchannelType;
48
49         typedef [public] struct {
50                 NTSTATUS ntstatus;
51                 uint32 unknown1;
52                 uint32 unknown2; /* 0x00000001 */
53         } KRB5_EDATA_NTSTATUS;
54
55         typedef [public,v1_enum] enum {
56                 REG_NONE                       = 0,
57                 REG_SZ                         = 1,
58                 REG_EXPAND_SZ                  = 2,
59                 REG_BINARY                     = 3,
60                 REG_DWORD                      = 4,
61                 REG_DWORD_BIG_ENDIAN           = 5,
62                 REG_LINK                       = 6,
63                 REG_MULTI_SZ                   = 7,
64                 REG_RESOURCE_LIST              = 8,
65                 REG_FULL_RESOURCE_DESCRIPTOR   = 9,
66                 REG_RESOURCE_REQUIREMENTS_LIST = 10,
67                 REG_QWORD                      = 11
68         } winreg_Type;
69
70         typedef [nodiscriminant,public,flag(NDR_LITTLE_ENDIAN)] union {
71                 [case(REG_NONE)];
72                 [case(REG_SZ)] nstring string;
73                 [case(REG_EXPAND_SZ)] nstring string;
74                 [case(REG_BINARY),flag(NDR_REMAINING)] DATA_BLOB binary;
75                 [case(REG_DWORD)] uint32 value;
76                 [case(REG_DWORD_BIG_ENDIAN),flag(NDR_BIG_ENDIAN)] uint32 value;
77                 [case(REG_MULTI_SZ)] nstring_array string_array;
78                 [case(REG_QWORD)] hyper qword;
79                 [default,flag(NDR_REMAINING)] DATA_BLOB data;
80         } winreg_Data;
81
82         /* SAM database types */
83         typedef [public,v1_enum] enum {
84                 SAM_DATABASE_DOMAIN  = 0, /* Domain users and groups */
85                 SAM_DATABASE_BUILTIN = 1, /* BUILTIN users and groups */
86                 SAM_DATABASE_PRIVS   = 2 /* Privileges */
87         } netr_SamDatabaseID;
88
89         typedef [public,bitmap32bit] bitmap {
90                 SV_TYPE_WORKSTATION       = 0x00000001,
91                 SV_TYPE_SERVER            = 0x00000002,
92                 SV_TYPE_SQLSERVER         = 0x00000004,
93                 SV_TYPE_DOMAIN_CTRL       = 0x00000008,
94                 SV_TYPE_DOMAIN_BAKCTRL    = 0x00000010,
95                 SV_TYPE_TIME_SOURCE       = 0x00000020,
96                 SV_TYPE_AFP               = 0x00000040,
97                 SV_TYPE_NOVELL            = 0x00000080,
98
99                 SV_TYPE_DOMAIN_MEMBER     = 0x00000100,
100                 SV_TYPE_PRINTQ_SERVER     = 0x00000200,
101                 SV_TYPE_DIALIN_SERVER     = 0x00000400,
102                 SV_TYPE_SERVER_UNIX       = 0x00000800,
103                 SV_TYPE_NT                = 0x00001000,
104                 SV_TYPE_WFW               = 0x00002000,
105                 SV_TYPE_SERVER_MFPN       = 0x00004000,
106                 SV_TYPE_SERVER_NT         = 0x00008000,
107                 SV_TYPE_POTENTIAL_BROWSER = 0x00010000,
108                 SV_TYPE_BACKUP_BROWSER    = 0x00020000,
109                 SV_TYPE_MASTER_BROWSER    = 0x00040000,
110                 SV_TYPE_DOMAIN_MASTER     = 0x00080000,
111                 SV_TYPE_SERVER_OSF        = 0x00100000,
112                 SV_TYPE_SERVER_VMS        = 0x00200000,
113                 SV_TYPE_WIN95_PLUS        = 0x00400000,
114                 SV_TYPE_DFS_SERVER        = 0x00800000,
115                 SV_TYPE_ALTERNATE_XPORT   = 0x20000000,
116                 SV_TYPE_LOCAL_LIST_ONLY   = 0x40000000,
117                 SV_TYPE_DOMAIN_ENUM       = 0x80000000
118         } svcctl_ServerType;
119
120         const uint32 SV_TYPE_ALL        = 0xFFFFFFFF;
121 }