#include "idl_types.h" /* miscellaneous IDL structures */ [] interface misc { typedef [public,noprint] struct { uint32 time_low; uint16 time_mid; uint16 time_hi_and_version; uint8 clock_seq[2]; uint8 node[6]; } GUID; /* a domain SID. Note that unlike Samba3 this contains a pointer, so you can't copy them using assignment */ typedef [public,noprint] struct { uint8 sid_rev_num; /**< SID revision number */ uint8 num_auths; /**< Number of sub-authorities */ uint8 id_auth[6]; /**< Identifier Authority */ uint32 sub_auths[num_auths]; } dom_sid; typedef [public] struct { uint8 type; /* xxxx_xxxx_ACE_TYPE - e.g allowed / denied etc */ uint8 flags; /* xxxx_INHERIT_xxxx - e.g OBJECT_INHERIT_ACE */ [value(ndr_size_security_ace(r))] uint16 size; uint32 access_mask; #if 0 /* the 'obj' part is present when type is XXXX_TYPE_XXXX_OBJECT */ struct { uint32 flags; GUID object_guid; GUID inherit_guid; } *obj; #endif dom_sid trustee; } security_ace; typedef [public] struct { uint16 revision; [value(ndr_size_security_acl(r))] uint16 size; uint32 num_aces; security_ace aces[num_aces]; } security_acl; typedef [public] struct { uint8 revision; uint16 type; /* SEC_DESC_xxxx flags */ [relative] dom_sid *owner_sid; [relative] dom_sid *group_sid; [relative] security_acl *sacl; /* system ACL */ [relative] security_acl *dacl; /* user (discretionary) ACL */ } security_descriptor; typedef [public] struct { uint32 handle_type; GUID uuid; } policy_handle; /* a 4 byte aligned 64-bit integer */ typedef [public] struct { uint32 low; uint32 high; } ULONG8; /* this is also used in samr and netlogon */ typedef [public, flag(NDR_PAHEX)] struct { uint16 units_per_week; [size_is(1260), length_is(units_per_week/8)] uint8 *bitmap; } samr_LogonHours; }