summaryrefslogtreecommitdiff
path: root/source4/librpc/idl/unixinfo.idl
blob: 9d1060229f461a37c07e31ba0b4e6d49716f9935 (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
#include "idl_types.h"

/*
  Unixinfo interface definition
*/

[ uuid("9c54e310-a955-4885-bd31-78787147dfa6"),
  version(0.0),
  endpoint("ncacn_np:[\\pipe\\unixinfo]", "ncacn_ip_tcp:", "ncalrpc:"),
  pointer_default(unique),
  helpstring("Unixinfo specific stuff"),
  depends(security)
] interface unixinfo
{
	/******************/
	/* Function: 0x00 */
	NTSTATUS unixinfo_SidToUid (
	    [in]	dom_sid sid,
	    [out,ref]	hyper *uid
	    );

	/******************/
	/* Function: 0x01 */
	NTSTATUS unixinfo_UidToSid (
	    [in]	hyper uid,
	    [out]	dom_sid *sid
	    );

	/******************/
	/* Function: 0x02 */
	NTSTATUS unixinfo_SidToGid (
	    [in]	dom_sid sid,
	    [out,ref]	hyper *gid
	    );

	/******************/
	/* Function: 0x03 */
	NTSTATUS unixinfo_GidToSid (
	    [in]	hyper gid,
	    [out,ref]	dom_sid *sid
	    );

    typedef struct {
    	NTSTATUS status;
        [string,charset(UTF8)] uint8 *homedir;
	   	[string,charset(UTF8)] uint8 *shell;
	} unixinfo_GetPWUidInfo;

	/******************/
	/* Function: 0x04 */
        NTSTATUS unixinfo_GetPWUid (
		[in,out,ref,range(0,1023)] uint32 *count,
		[in,size_is(*count)] hyper uids[],
		[out,size_is(*count)] unixinfo_GetPWUidInfo *infos
        );
}