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
|
/*
winbind IRPC interface
*/
#include "idl_types.h"
import "netlogon.idl", "lsa.idl", "security.idl";
[
uuid("245f3e6b-3c5d-6e21-3a2d-2a3d645b7221"),
version(1.0),
pointer_default(unique)
]
interface winbind
{
typedef [switch_type(uint16)] union netr_LogonLevel netr_LogonLevel;
typedef [switch_type(uint16)] union netr_Validation netr_Validation;
typedef enum {
ID_TYPE_NOT_SPECIFIED,
ID_TYPE_UID,
ID_TYPE_GID,
ID_TYPE_BOTH
} id_type;
typedef struct {
uint32 id;
id_type type;
} unixid;
typedef struct {
unixid *unixid;
dom_sid *sid;
NTSTATUS status;
} id_mapping;
/* a call to get runtime informations */
void winbind_information(/* TODO */);
/*
* a call to trigger some internal events,
* for use in torture tests...
*/
NTSTATUS winbind_remote_control(/* TODO */);
/*
* do a netr_LogonSamLogon() against the right DC
*/
NTSTATUS winbind_SamLogon(
[in] uint16 logon_level,
[in] [switch_is(logon_level)] netr_LogonLevel logon,
[in] uint16 validation_level,
[out] [switch_is(validation_level)] netr_Validation validation,
[out] uint8 authoritative
);
typedef [v1_enum] enum {
WINBIND_IDMAP_LEVEL_SIDS_TO_XIDS = 1,
WINBIND_IDMAP_LEVEL_XIDS_TO_SIDS = 2
} winbind_get_idmap_level;
NTSTATUS winbind_get_idmap(
[in] winbind_get_idmap_level level,
[in] uint32 count,
[in,out] [size_is(count)] id_mapping ids[]
);
}
|