s4-srvsvc: merge srvsvc_NetSessEnum from s3 idl.
[ira/wip.git] / source4 / librpc / idl / srvsvc.idl
index 10807cd6af5c74bd78d4f64fc8b9deecc09d8ef8..bbabd8e2dce8cfaa5be9baf336aacf07ca98f42d 100644 (file)
@@ -51,14 +51,18 @@ import "security.idl", "svcctl.idl";
                [default] ;
        } srvsvc_NetCharDevCtr;
 
+       typedef struct {
+               uint32 level;
+               [switch_is(level)] srvsvc_NetCharDevCtr ctr;
+       } srvsvc_NetCharDevInfoCtr;
+
        /******************/
        /* Function: 0x00 */
        WERROR srvsvc_NetCharDevEnum(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
-               [in,out]   uint32 level,
-               [in,out,switch_is(level)]   srvsvc_NetCharDevCtr ctr,
+               [in,out,ref]  srvsvc_NetCharDevInfoCtr *info_ctr,
                [in]   uint32 max_buffer,
-               [out]   uint32 totalentries,
+               [out,ref]   uint32 *totalentries,
                [in,out,unique]   uint32 *resume_handle
                );
 
@@ -68,7 +72,7 @@ import "security.idl", "svcctl.idl";
                [in,unique] [string,charset(UTF16)] uint16 *server_unc,
                [in]   [string,charset(UTF16)] uint16 device_name[],
                [in]   uint32 level,
-               [out,switch_is(level)]   srvsvc_NetCharDevInfo info
+               [out,ref,switch_is(level)]   srvsvc_NetCharDevInfo *info
                );
 
        /******************/
@@ -116,15 +120,19 @@ import "security.idl", "svcctl.idl";
                [default] ;
        } srvsvc_NetCharDevQCtr;
 
+       typedef struct {
+               uint32 level;
+               [switch_is(level)] srvsvc_NetCharDevQCtr ctr;
+       } srvsvc_NetCharDevQInfoCtr;
+
        /******************/
        /* Function: 0x03 */
        WERROR srvsvc_NetCharDevQEnum(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in,unique]   [string,charset(UTF16)] uint16 *user,
-               [in,out]   uint32 level,
-               [in,out,switch_is(level)]   srvsvc_NetCharDevQCtr ctr,
+               [in,out,ref]  srvsvc_NetCharDevQInfoCtr *info_ctr,
                [in]   uint32 max_buffer,
-               [out]   uint32 totalentries,
+               [out,ref]   uint32 *totalentries,
                [in,out,unique]   uint32 *resume_handle
                );
 
@@ -135,13 +143,13 @@ import "security.idl", "svcctl.idl";
                [in]   [string,charset(UTF16)] uint16 queue_name[],
                [in]   [string,charset(UTF16)] uint16 user[],
                [in]   uint32 level,
-               [out,switch_is(level)]   srvsvc_NetCharDevQInfo info
+               [out,switch_is(level),ref]   srvsvc_NetCharDevQInfo *info
                );
 
        /******************/
        /* Function: 0x05 */
        WERROR srvsvc_NetCharDevQSetInfo(
-               [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
+               [in,unique] [string,charset(UTF16)] uint16 *server_unc,
                [in]   [string,charset(UTF16)] uint16 queue_name[],
                [in]   uint32 level,
                [in,switch_is(level)]   srvsvc_NetCharDevQInfo info,
@@ -196,15 +204,19 @@ import "security.idl", "svcctl.idl";
                [default] ;
        } srvsvc_NetConnCtr;
 
+       typedef struct {
+               uint32 level;
+               [switch_is(level)] srvsvc_NetConnCtr ctr;
+       } srvsvc_NetConnInfoCtr;
+
        /******************/
        /* Function: 0x08 */
        WERROR srvsvc_NetConnEnum(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in,unique]   [string,charset(UTF16)] uint16 *path,
-               [in,out]   uint32 level,
-               [in,out,switch_is(level)]   srvsvc_NetConnCtr ctr,
+               [in,out,ref]  srvsvc_NetConnInfoCtr *info_ctr,
                [in]   uint32 max_buffer,
-               [out]   uint32 totalentries,
+               [out,ref]   uint32 *totalentries,
                [in,out,unique]   uint32 *resume_handle
                );
 
@@ -245,16 +257,20 @@ import "security.idl", "svcctl.idl";
                [default] ;
        } srvsvc_NetFileCtr;
 
+       typedef struct {
+               uint32 level;
+               [switch_is(level)] srvsvc_NetFileCtr ctr;
+       } srvsvc_NetFileInfoCtr;
+
        /******************/
        /* Function: 0x09 */
        WERROR srvsvc_NetFileEnum(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in,unique]   [string,charset(UTF16)] uint16 *path,
                [in,unique]   [string,charset(UTF16)] uint16 *user,
-               [in,out]   uint32 level,
-               [in,out,switch_is(level)]   srvsvc_NetFileCtr ctr,
+               [in,out,ref]   srvsvc_NetFileInfoCtr *info_ctr,
                [in]   uint32 max_buffer,
-               [out]   uint32 totalentries,
+               [out,ref]   uint32 *totalentries,
                [in,out,unique]   uint32 *resume_handle
                );
 
@@ -264,7 +280,7 @@ import "security.idl", "svcctl.idl";
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   uint32 fid,
                [in]   uint32 level,
-               [out,switch_is(level)]   srvsvc_NetFileInfo info
+               [out,switch_is(level),ref]   srvsvc_NetFileInfo *info
                );
 
        /******************/
@@ -354,14 +370,19 @@ import "security.idl", "svcctl.idl";
 
        /******************/
        /* Function: 0x0c */
+
+       typedef struct {
+               uint32 level;
+               [switch_is(level)] srvsvc_NetSessCtr ctr;
+       } srvsvc_NetSessInfoCtr;
+
        WERROR srvsvc_NetSessEnum(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in,unique]   [string,charset(UTF16)] uint16 *client,
                [in,unique]   [string,charset(UTF16)] uint16 *user,
-               [in,out]   uint32 level,
-               [in,out,switch_is(level)]   srvsvc_NetSessCtr ctr,
+               [in,out,ref]   srvsvc_NetSessInfoCtr *info_ctr,
                [in]   uint32 max_buffer,
-               [out]   uint32 totalentries,
+               [out,ref]   uint32 *totalentries,
                [in,out,unique]   uint32 *resume_handle
                );
 
@@ -400,12 +421,22 @@ import "security.idl", "svcctl.idl";
                [string,charset(UTF16)] uint16 *name;
        } srvsvc_NetShareInfo0;
 
+       typedef struct {
+               uint32 count;
+               [size_is(count)] srvsvc_NetShareInfo0 *array;
+       } srvsvc_NetShareCtr0;
+
        typedef struct {
                [string,charset(UTF16)] uint16 *name;
                srvsvc_ShareType type;
                [string,charset(UTF16)] uint16 *comment;
        } srvsvc_NetShareInfo1;
 
+       typedef struct {
+               uint32 count;
+               [size_is(count)] srvsvc_NetShareInfo1 *array;
+       } srvsvc_NetShareCtr1;
+
        typedef struct {
                [string,charset(UTF16)] uint16 *name;
                srvsvc_ShareType type;
@@ -417,6 +448,11 @@ import "security.idl", "svcctl.idl";
                [string,charset(UTF16)] uint16 *password;
        } srvsvc_NetShareInfo2;
 
+       typedef struct {
+               uint32 count;
+               [size_is(count)] srvsvc_NetShareInfo2 *array;
+       } srvsvc_NetShareCtr2;
+
        typedef struct {
                [string,charset(UTF16)] uint16 *name;
                srvsvc_ShareType type;
@@ -424,27 +460,36 @@ import "security.idl", "svcctl.idl";
                uint32 csc_policy;
        } srvsvc_NetShareInfo501;
 
+       typedef struct {
+               uint32 count;
+               [size_is(count)] srvsvc_NetShareInfo501 *array;
+       } srvsvc_NetShareCtr501;
+
        typedef struct {
                [string,charset(UTF16)] uint16 *name;
                srvsvc_ShareType type;
                [string,charset(UTF16)] uint16 *comment;
                uint32 permissions;
-               int32 max_users;
+               uint32 max_users;
                uint32 current_users;
                [string,charset(UTF16)] uint16 *path;
                [string,charset(UTF16)] uint16 *password;
-               /* maybe here is a struct sec_desc_buf following */
-               uint32 unknown;
-               [subcontext(4)] security_descriptor *sd;
+               sec_desc_buf sd_buf;
        } srvsvc_NetShareInfo502;
 
+       typedef struct {
+               uint32 count;
+               [size_is(count)] srvsvc_NetShareInfo502 *array;
+       } srvsvc_NetShareCtr502;
+
        typedef struct {
                [string,charset(UTF16)] uint16 *comment;
        } srvsvc_NetShareInfo1004;
 
        typedef struct {
-               int32 max_users;
-       } srvsvc_NetShareInfo1006;
+               uint32 count;
+               [size_is(count)] srvsvc_NetShareInfo1004 *array;
+       } srvsvc_NetShareCtr1004;
 
        typedef bitmap {
                SHARE_1005_IN_DFS               = 0x00000001,
@@ -458,65 +503,25 @@ import "security.idl", "svcctl.idl";
                NetShareInfo1005Flags dfs_flags;
        } srvsvc_NetShareInfo1005;
 
-       typedef struct {
-               uint32 flags;
-               [string,charset(UTF16)] uint16 *alternate_directory_name;
-       } srvsvc_NetShareInfo1007;
-
-       typedef union {
-               [case(0)] srvsvc_NetShareInfo0 *info0;
-               [case(1)] srvsvc_NetShareInfo1 *info1;
-               [case(2)] srvsvc_NetShareInfo2 *info2;
-               [case(501)] srvsvc_NetShareInfo501 *info501;
-               [case(502)] srvsvc_NetShareInfo502 *info502;
-               [case(1004)] srvsvc_NetShareInfo1004 *info1004;
-               [case(1005)] srvsvc_NetShareInfo1005 *info1005;
-               [case(1006)] srvsvc_NetShareInfo1006 *info1006;
-               [case(1007)] srvsvc_NetShareInfo1007 *info1007;
-               [case(1501)] sec_desc_buf *info1501;
-               [default] ;
-       } srvsvc_NetShareInfo;
-
-       typedef struct {
-               uint32 count;
-               [size_is(count)] srvsvc_NetShareInfo0 *array;
-       } srvsvc_NetShareCtr0;
-
-       typedef struct {
-               uint32 count;
-               [size_is(count)] srvsvc_NetShareInfo1 *array;
-       } srvsvc_NetShareCtr1;
-
-       typedef struct {
-               uint32 count;
-               [size_is(count)] srvsvc_NetShareInfo2 *array;
-       } srvsvc_NetShareCtr2;
-
-       typedef struct {
-               uint32 count;
-               [size_is(count)] srvsvc_NetShareInfo501 *array;
-       } srvsvc_NetShareCtr501;
-
-       typedef struct {
-               uint32 count;
-               [size_is(count)] srvsvc_NetShareInfo502 *array;
-       } srvsvc_NetShareCtr502;
-
-       typedef struct {
-               uint32 count;
-               [size_is(count)] srvsvc_NetShareInfo1004 *array;
-       } srvsvc_NetShareCtr1004;
-
        typedef struct {
                uint32 count;
                [size_is(count)] srvsvc_NetShareInfo1005 *array;
        } srvsvc_NetShareCtr1005;
 
+       typedef struct {
+               uint32 max_users;
+       } srvsvc_NetShareInfo1006;
+
        typedef struct {
                uint32 count;
                [size_is(count)] srvsvc_NetShareInfo1006 *array;
        } srvsvc_NetShareCtr1006;
 
+       typedef struct {
+               uint32 flags;
+               [string,charset(UTF16)] uint16 *alternate_directory_name;
+       } srvsvc_NetShareInfo1007;
+
        typedef struct {
                uint32 count;
                [size_is(count)] srvsvc_NetShareInfo1007 *array;
@@ -527,6 +532,20 @@ import "security.idl", "svcctl.idl";
                [size_is(count)] sec_desc_buf *array;
        } srvsvc_NetShareCtr1501;
 
+       typedef union {
+               [case(0)] srvsvc_NetShareInfo0 *info0;
+               [case(1)] srvsvc_NetShareInfo1 *info1;
+               [case(2)] srvsvc_NetShareInfo2 *info2;
+               [case(501)] srvsvc_NetShareInfo501 *info501;
+               [case(502)] srvsvc_NetShareInfo502 *info502;
+               [case(1004)] srvsvc_NetShareInfo1004 *info1004;
+               [case(1005)] srvsvc_NetShareInfo1005 *info1005;
+               [case(1006)] srvsvc_NetShareInfo1006 *info1006;
+               [case(1007)] srvsvc_NetShareInfo1007 *info1007;
+               [case(1501)] sec_desc_buf *info1501;
+               [default] ;
+       } srvsvc_NetShareInfo;
+
        typedef union {
                [case(0)] srvsvc_NetShareCtr0 *ctr0;
                [case(1)] srvsvc_NetShareCtr1 *ctr1;
@@ -541,12 +560,17 @@ import "security.idl", "svcctl.idl";
                [default] ;
        } srvsvc_NetShareCtr;
 
+       typedef struct {
+               uint32 level;
+               [switch_is(level)] srvsvc_NetShareCtr ctr;
+       } srvsvc_NetShareInfoCtr;
+
        /******************/
        /* Function: 0x0e */
        WERROR srvsvc_NetShareAdd(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   uint32 level,
-               [in,switch_is(level)] srvsvc_NetShareInfo info,
+               [in,ref,switch_is(level)] srvsvc_NetShareInfo *info,
                [in,out,unique]   uint32 *parm_error
                );
 
@@ -567,7 +591,7 @@ import "security.idl", "svcctl.idl";
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   [string,charset(UTF16)] uint16 share_name[],
                [in]   uint32 level,
-               [out,switch_is(level)] srvsvc_NetShareInfo info
+               [out,ref,switch_is(level)] srvsvc_NetShareInfo *info
                );
 
        /******************/
@@ -576,7 +600,7 @@ import "security.idl", "svcctl.idl";
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   [string,charset(UTF16)] uint16 share_name[],
                [in]   uint32 level,
-               [in,switch_is(level)] srvsvc_NetShareInfo info,
+               [in,ref,switch_is(level)] srvsvc_NetShareInfo *info,
                [in,out,unique]   uint32 *parm_error
                );
 
@@ -601,7 +625,7 @@ import "security.idl", "svcctl.idl";
        WERROR srvsvc_NetShareCheck(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   [string,charset(UTF16)] uint16 device_name[],
-               [out]  srvsvc_ShareType type
+               [out,ref]  srvsvc_ShareType *type
                );
 
 /**************************/
@@ -665,6 +689,7 @@ import "security.idl", "svcctl.idl";
                uint32 sessreqs;
                uint32 opensearch;
                uint32 activelocks;
+               uint32 numreqbufs;
                uint32 sizereqbufs;
                uint32 numbigbufs;
                uint32 numfiletasks;
@@ -698,6 +723,7 @@ import "security.idl", "svcctl.idl";
                uint32 sessreqs;
                uint32 opensearch;
                uint32 activelocks;
+               uint32 numreqbufs;
                uint32 sizereqbufs;
                uint32 numbigbufs;
                uint32 numfiletasks;
@@ -1111,7 +1137,7 @@ import "security.idl", "svcctl.idl";
        WERROR srvsvc_NetSrvGetInfo(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   uint32 level,
-               [out,switch_is(level)] srvsvc_NetSrvInfo info
+               [out,ref,switch_is(level)] srvsvc_NetSrvInfo *info
                );
 
        /******************/
@@ -1119,7 +1145,7 @@ import "security.idl", "svcctl.idl";
        WERROR srvsvc_NetSrvSetInfo(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   uint32 level,
-               [in,switch_is(level)] srvsvc_NetSrvInfo info,
+               [in,ref,switch_is(level)] srvsvc_NetSrvInfo *info,
                [in,out,unique]   uint32 *parm_error
                );
 
@@ -1149,9 +1175,9 @@ import "security.idl", "svcctl.idl";
        WERROR srvsvc_NetDiskEnum(
                [in,unique]      [string,charset(UTF16)] uint16 *server_unc,
                [in]      uint32 level,
-               [in,out]  srvsvc_NetDiskInfo info,
+               [in,out,ref]  srvsvc_NetDiskInfo *info,
                [in]      uint32 maxlen,
-               [out]     uint32 totalentries,
+               [out,ref]     uint32 *totalentries,
                [in,out,unique]  uint32 *resume_handle
                );
 
@@ -1185,7 +1211,7 @@ import "security.idl", "svcctl.idl";
                [in,unique]      [string,charset(UTF16)] uint16 *service,
                [in]      uint32 level,
                [in]      uint32 options,
-               [out]     srvsvc_Statistics stat
+               [out,ref]     srvsvc_Statistics **stats
                );
 
 /**************************/
@@ -1266,14 +1292,18 @@ import "security.idl", "svcctl.idl";
                [default];
        } srvsvc_NetTransportCtr;
 
+       typedef struct {
+               uint32 level;
+               [switch_is(level)] srvsvc_NetTransportCtr ctr;
+       } srvsvc_NetTransportInfoCtr;
+
        /******************/
        /* Function: 0x1a */
        WERROR srvsvc_NetTransportEnum(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
-               [in,out] uint32 level,
-               [in,out,switch_is(level)]   srvsvc_NetTransportCtr transports,
+               [in,out,ref] srvsvc_NetTransportInfoCtr *transports,
                [in]   uint32 max_buffer,
-               [out]   uint32 totalentries,
+               [out,ref]   uint32 *totalentries,
                [in,out,unique]   uint32 *resume_handle
                );
 
@@ -1282,7 +1312,7 @@ import "security.idl", "svcctl.idl";
        WERROR srvsvc_NetTransportDel(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in]    uint32 level,
-               [in,switch_is(level)]   srvsvc_NetTransportInfo info
+               [in]    srvsvc_NetTransportInfo0 *info0
                );
 
 /**************************/
@@ -1307,7 +1337,7 @@ import "security.idl", "svcctl.idl";
        /* Function: 0x1c */
        WERROR srvsvc_NetRemoteTOD(
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
-               [out,unique]   srvsvc_NetRemoteTODInfo *info
+               [out,ref]     srvsvc_NetRemoteTODInfo **info
                );
 
 /**************************/
@@ -1331,7 +1361,7 @@ import "security.idl", "svcctl.idl";
                [in,unique]   [string,charset(UTF16)] uint16 *server_unc,
                [in]   [string,charset(UTF16)] uint16 path[],
                [in]   uint32 pathflags,
-               [out]   uint32 pathtype
+               [out,ref]   uint32 *pathtype
                );
 
        /******************/
@@ -1342,7 +1372,7 @@ import "security.idl", "svcctl.idl";
                [out]  [size_is(maxbuf)] uint8 can_path[],
                [in]   uint32 maxbuf,
                [in]   [string,charset(UTF16)] uint16 prefix[],
-               [in,out] uint32 pathtype,
+               [in,out,ref] uint32 *pathtype,
                [in]    uint32 pathflags
                );
 
@@ -1421,7 +1451,7 @@ import "security.idl", "svcctl.idl";
                [in,unique]       [string,charset(UTF16)] uint16 *share,
                [in]       [string,charset(UTF16)] uint16 file[],
                [in]       security_secinfo securityinformation,
-               [out,unique]       sec_desc_buf *sd_buf
+               [out,ref]  sec_desc_buf **sd_buf
                );
 
        /******************/
@@ -1431,7 +1461,7 @@ import "security.idl", "svcctl.idl";
                [in,unique]       [string,charset(UTF16)] uint16 *share,
                [in]       [string,charset(UTF16)] uint16 file[],
                [in]       security_secinfo securityinformation,
-               [in]       sec_desc_buf sd_buf
+               [in,ref]   sec_desc_buf *sd_buf
                );