/* 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[] ); }