mirror of
https://github.com/samba-team/samba.git
synced 2025-01-15 23:24:37 +03:00
77fb98ac7c
we needed to adjust the alignment of [relative] buffers for this to work. I wonder if they are always 4 byte aligned? (This used to be commit 9cd0a0b8b976e62c6da71b7e55cba5b38483620d)
80 lines
1.9 KiB
Plaintext
80 lines
1.9 KiB
Plaintext
#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;
|
|
}
|