r101: added lsa_SetSecret() and lsa_QuerySecret()
[samba.git] / source / librpc / idl / samr.idl
index 43db18a298ae9c766fab27d3800753e835b61c4b..1226d1f7707c1c4a2c8cc33d0d6f3c3ce6dbf070 100644 (file)
   pointer_default(unique)
 ] interface samr
 {
-       /* a 4 byte aligned 64-bit integer */
-       typedef struct {
-               uint32 low;
-               uint32 high;
-       } ULONG8;
-
-
        /******************/
        /* Function: 0x00 */
        NTSTATUS samr_Connect (
 
        /******************/
        /* Function: 0x02 */
-       NTSTATUS samr_SetSecurity ();
-
-       /******************/
-       /* Function: 0x03 */
 
        typedef struct {
                [value(ndr_size_security_descriptor(r->sd))] uint32 sd_size;
                [subcontext(4)] security_descriptor *sd;
        } samr_SdBuf;
 
+       NTSTATUS samr_SetSecurity (
+               [in,ref]          policy_handle *handle,
+               [in]              uint32 sec_info,
+               [in,ref]          samr_SdBuf *sdbuf
+               );
+
+       /******************/
+       /* Function: 0x03 */
+
        NTSTATUS samr_QuerySecurity (
                [in,ref]          policy_handle *handle,
                [in]              uint32 sec_info,
 
        /************************/
        /* Function    0x0e     */
-       NTSTATUS samr_CREATE_DOM_ALIAS();
+       NTSTATUS samr_CreateDomAlias(
+               [in,ref]      policy_handle *handle,
+               [in,ref]      samr_Name     *aliasname,
+               [in]          uint32         access_mask,
+               [out,ref]     policy_handle *acct_handle,
+               [out,ref]     uint32        *rid
+               );
 
        /************************/
        /* Function    0x0f     */
        /************************/
        /* Function    0x10     */
 
-       typedef struct {
-               uint32 count;
-               [size_is(count)] dom_sid2 *sids;
-       } samr_Sids;
-
        typedef struct {
                uint32 count;
                [size_is(count)] uint32 *ids;
 
        NTSTATUS samr_GetAliasMembership(
                [in,ref]      policy_handle *handle,
-               [in]          samr_Sids *sids,
+               [in,ref]  lsa_SidArray  *sids,
                [out]         samr_Ids *rids
                );
 
                samr_Name description;
        } samr_GroupInfoAll;
 
-       typedef struct {
-               samr_Name Name;
-       } samr_GroupInfoName;
-
        typedef struct {
                uint32 unknown;
        } samr_GroupInfoX;
        } GroupInfo;
 
        typedef union {
-               [case(GroupInfoAll)]         samr_GroupInfoAll        all;
-               [case(GroupInfoName)]        samr_GroupInfoName       name;
-               [case(GroupInfoX)]           samr_GroupInfoX          unknown;
-               [case(GroupInfoDescription)] samr_GroupInfoDesciption description;
+               [case(GroupInfoAll)]         samr_GroupInfoAll    all;
+               [case(GroupInfoName)]        samr_Name            name;
+               [case(GroupInfoX)]           samr_GroupInfoX      unknown;
+               [case(GroupInfoDescription)] samr_Name            description;
        } samr_GroupInfo;
 
        NTSTATUS samr_QueryGroupInfo(
                samr_Name description;
        } samr_AliasInfoAll;
 
-       typedef struct {
-               samr_Name name;
-       } samr_AliasInfoName;
-
-       typedef struct {
-               samr_Name description;
-       } samr_AliasInfoDescription;
-
        typedef union {
                [case(1)] samr_AliasInfoAll all;
-               [case(2)] samr_AliasInfoName name;
-               [case(3)] samr_AliasInfoDescription description;
+               [case(2)] samr_Name name;
+               [case(3)] samr_Name description;
        } samr_AliasInfo;
 
        NTSTATUS samr_QueryAliasInfo(
 
        /************************/
        /* Function    0x1d     */
-       NTSTATUS samr_SET_ALIASINFO();
+       NTSTATUS samr_SetAliasInfo(
+               [in,ref]                  policy_handle  *handle,
+               [in]                      uint16          level,
+               [in,switch_is(level)]     samr_AliasInfo  info
+               );
 
        /************************/
        /* Function    0x1e     */
-       NTSTATUS samr_DELETE_DOM_ALIAS();
+       NTSTATUS samr_DeleteDomAlias(
+               [in,out,ref]  policy_handle *handle
+               );
 
        /************************/
        /* Function    0x1f     */
-       NTSTATUS samr_ADD_ALIASMEM();
+       NTSTATUS samr_AddAliasMem(
+               [in,ref]  policy_handle *handle,
+               [in,ref]  dom_sid2      *sid
+               );
 
        /************************/
        /* Function    0x20     */
-       NTSTATUS samr_DEL_ALIASMEM();
+       NTSTATUS samr_DelAliasMem(
+               [in,ref] policy_handle *handle,
+               [in,ref] dom_sid2      *sid
+               );
 
        /************************/
        /* Function    0x21     */
-       NTSTATUS samr_GET_MEMBERS_IN_ALIAS();
+       NTSTATUS samr_GetMembersInAlias(
+               [in,ref]   policy_handle *handle,
+               [out,ref]  lsa_SidArray    *sids
+               );
 
        /************************/
        /* Function    0x22     */
                NTTIME last_pwd_change;
                NTTIME allow_pwd_change;
                NTTIME force_pwd_change;
-               uint32 units_per_week;
-               [size_is(1260), length_is(units_per_week/8)] uint8 *logon_hours;
+               samr_LogonHours logon_hours;
                uint16 bad_pwd_count;
                uint16 num_logons;
                uint32 acct_flags;
        } samr_UserInfo3;
 
        typedef struct {
-               uint32 units_per_week;
-               [size_is(1260), length_is(units_per_week/8)] uint8 *logon_hours;
+               samr_LogonHours logon_hours;
        } samr_UserInfo4;
 
        typedef struct {
                samr_Name workstations;
                NTTIME last_logon;
                NTTIME last_logoff;
-               uint32 units_per_week;
-               [size_is(1260), length_is(units_per_week/8)] uint8 *logon_hours;
+               samr_LogonHours logon_hours;
                uint16 bad_pwd_count;
                uint16 num_logons;
                NTTIME last_pwd_change;
                uint32 primary_gid;
                uint32 acct_flags;
                uint32 fields_present;
-               uint32 units_per_week;
-               [size_is(1260), length_is(units_per_week/8)] uint8 *logon_hours;
+               samr_LogonHours logon_hours;
                uint16 bad_pwd_count;
                uint16 num_logons;
                uint16 country_code;
 
        /************************/
        /* Function    0x27     */
-       NTSTATUS samr_GET_GROUPS_FOR_USER();
+
+       typedef struct {
+               uint32 rid;
+               uint32 type;
+       } samr_RidType;
+
+       typedef struct {
+               uint32     count;
+               [size_is(count)] samr_RidType *rid;
+       } samr_RidArray;
+
+       NTSTATUS samr_GetGroupsForUser(
+               [in,ref]   policy_handle *handle,
+               [out]      samr_RidArray  *rids
+               );
 
        /************************/
        /* Function    0x28     */
 
        /************************/
        /* Function    0x32     */
-       NTSTATUS samr_CREATE_USER2_IN_DOMAIN();
+       NTSTATUS samr_CreateUser2(
+       /************************/
+               [in,ref]      policy_handle *handle,
+               [in,ref]      samr_Name *username,
+               [in]          uint32 acct_flags,
+               [in]          uint32 access_mask,
+               [out,ref]     policy_handle *acct_handle,
+               [out,ref]     uint32 *access_granted,
+               [out,ref]     uint32 *rid
+               );
+
 
        /************************/
        /* Function    0x33     */
 
        /************************/
        /* Function    0x39     */
-       NTSTATUS samr_CONNECT2();
+       NTSTATUS samr_Connect2(
+               [in] unistr *system_name,
+               [in] uint32 access_mask,
+               [out,ref]  policy_handle *handle
+               );
 
        /************************/
        /* Function    0x3a     */
 
        /************************/
        /* Function    0x40      */
-       NTSTATUS samr_CONNECT5();
+       NTSTATUS samr_Connect5(
+               [in]       unistr        *system_name,
+               [in]       uint32         access_mask,
+               [in]       uint32         unknown0,
+               [in]       uint32         unknown1,
+               [in]       uint32         unknown2,
+               [in]       uint32         unknown3,
+               [out]      uint32         unknown4,
+               [out]      uint32         unknown5,
+               [out]      uint32         unknown6,
+               [out]      uint32         unknown7,
+               [out,ref]  policy_handle *handle
+               );
 
        /************************/
        /* Function    0x41     */