summaryrefslogtreecommitdiff
path: root/source4/librpc/idl/lsa.idl
blob: e043582f1da3588173b8d8af467161fd89bc8933 (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
/*
  lsa interface definition
*/

[ uuid(12345778-1234-abcd-ef00-0123456789ab),
  version(0.0),
  pointer_default(unique)
] interface lsarpc
{
	
	typedef struct {
		[struct_len] uint32 _len;
		uint16  impersonation_level;
		uint8   context_mode;
		uint8   effective_only;
	} lsa_QosInfo;
	
	typedef struct {
		[struct_len] uint32 _len;
		uint8 *root_dir;
		unistr *object_name;
		uint32 attributes;
		security_descriptor *sec_desc;
		lsa_QosInfo *sec_qos;
	} lsa_ObjectAttribute;
	
	NTSTATUS lsa_OpenPolicy (
		[in]       uint16 *system_name,
		[in,ref]   lsa_ObjectAttribute *attr,
		[in]       uint32 desired_access,
		[out,ref]  policy_handle *handle
		);
	
	NTSTATUS lsa_OpenPolicy2 (
		[in]      unistr *system_name,
		[in,ref]  lsa_ObjectAttribute *attr,
		[in]      uint32 desired_access,
		[out,ref] policy_handle *handle
		);

	typedef struct {
		dom_sid2 *sid;
	} lsa_SidPtr;
	
	typedef struct {
		uint32 num_sids;
		[size_is(num_sids)] lsa_SidPtr *sids;
	} lsa_SidArray;

	NTSTATUS lsa_EnumSids (
		[in,ref]     policy_handle *handle,
		[in,out,ref] uint32 *resume_handle,
		[in]         uint32 num_entries,
		[out,ref]    lsa_SidArray *sids
		);

}