summaryrefslogtreecommitdiff
path: root/source4/librpc/ndr/ndr_lsa.h
blob: ddb0eed323a74d77813b069c52c270797a32ac39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/* header auto-generated by pidl */

struct lsa_QosInfo {
	uint16 impersonation_level;
	uint8 context_mode;
	uint8 effective_only;
};

struct lsa_ObjectAttribute {
	uint8 *root_dir;
	const char *object_name;
	uint32 attributes;
	struct security_descriptor *sec_desc;
	struct lsa_QosInfo *sec_qos;
};

struct lsa_OpenPolicy {
	struct {
		uint16 *system_name;
		struct lsa_ObjectAttribute *attr;
		uint32 desired_access;
	} in;

	struct {
		struct policy_handle *handle;
		NTSTATUS result;
	} out;

};

struct lsa_OpenPolicy2 {
	struct {
		const char *system_name;
		struct lsa_ObjectAttribute *attr;
		uint32 desired_access;
	} in;

	struct {
		struct policy_handle *handle;
		NTSTATUS result;
	} out;

};

struct lsa_SidPtr {
	struct dom_sid2 *sid;
};

struct lsa_SidArray {
	uint32 num_sids;
	struct lsa_SidPtr *sids;
};

struct lsa_EnumSids {
	struct {
		struct policy_handle *handle;
		uint32 *resume_handle;
		uint32 num_entries;
	} in;

	struct {
		uint32 *resume_handle;
		struct lsa_SidArray *sids;
		NTSTATUS result;
	} out;

};

struct lsa_Name {
	uint16 name_len;
	uint16 name_size;
	const char *name;
};

struct lsa_TranslatedName {
	uint16 sid_type;
	struct lsa_Name name;
	uint32 sid_index;
};

struct lsa_TransNameArray {
	uint32 count;
	struct lsa_TranslatedName *names;
};

struct lsa_TrustInformation {
	struct lsa_Name name;
	struct dom_sid2 *sid;
};

struct lsa_RefDomainList {
	uint32 count;
	struct lsa_TrustInformation *domains;
	uint32 max_count;
};

struct lsa_LookupSids {
	struct {
		struct policy_handle *handle;
		struct lsa_SidArray *sids;
		struct lsa_TransNameArray *names;
		uint16 level;
		uint32 *count;
	} in;

	struct {
		struct lsa_RefDomainList *domains;
		struct lsa_TransNameArray *names;
		uint32 *count;
		NTSTATUS result;
	} out;

};

struct lsa_TranslatedSid {
	uint16 sid_type;
	uint32 rid;
	uint32 sid_index;
};

struct lsa_TransSidArray {
	uint32 count;
	struct lsa_TranslatedSid *sids;
};

struct lsa_LookupNames {
	struct {
		struct policy_handle *handle;
		uint32 num_names;
		struct lsa_Name *names;
		struct lsa_TransSidArray *sids;
		uint16 level;
		uint32 *count;
	} in;

	struct {
		struct lsa_RefDomainList *domains;
		struct lsa_TransSidArray *sids;
		uint32 *count;
		NTSTATUS result;
	} out;

};

#define DCERPC_LSA_OPENPOLICY 0
#define DCERPC_LSA_OPENPOLICY2 1
#define DCERPC_LSA_ENUMSIDS 2
#define DCERPC_LSA_LOOKUPSIDS 3
#define DCERPC_LSA_LOOKUPNAMES 4