summaryrefslogtreecommitdiff
path: root/source4/librpc/idl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r--source4/librpc/idl/dfs.idl26
-rw-r--r--source4/librpc/idl/echo.idl23
2 files changed, 40 insertions, 9 deletions
diff --git a/source4/librpc/idl/dfs.idl b/source4/librpc/idl/dfs.idl
index 110dc3563d..19781568a3 100644
--- a/source4/librpc/idl/dfs.idl
+++ b/source4/librpc/idl/dfs.idl
@@ -39,7 +39,7 @@
/******************/
/* Function: 0x04 */
NTSTATUS dfs_Info (
- [in,ref] unistr *path,
+ [in,ref] unistr_noterm *path,
[in] unistr *server,
[in] unistr *share,
[in] uint16 level
@@ -48,9 +48,29 @@
/******************/
/* Function: 0x05 */
+ typedef struct {
+ unistr *str;
+ } dfs_String;
+
+ typedef struct {
+ uint32 count;
+ [size_is(count)] dfs_String *s;
+ } dfs_Enum1;
+
+ typedef union {
+ case(1) dfs_Enum1 *enum1;
+ } dfs_EnumInfo;
+
+ typedef struct {
+ uint32 level;
+ [switch_is(level)] dfs_EnumInfo e;
+ } dfs_EnumStruct;
+
NTSTATUS dfs_Enum (
- [in] unistr *name,
[in] uint32 level,
- [in] uint32 buffer_size
+ [in] uint32 bufsize,
+ [in,out] dfs_EnumStruct *info,
+ [in] uint32 *unknown,
+ [in,out] uint32 *total
);
}
diff --git a/source4/librpc/idl/echo.idl b/source4/librpc/idl/echo.idl
index af6cb567d7..f7c65485f8 100644
--- a/source4/librpc/idl/echo.idl
+++ b/source4/librpc/idl/echo.idl
@@ -25,16 +25,27 @@ interface rpcecho
[out,ref,size_is(len)] uint8 *data
);
-#define long uint32
+#define int uint32
typedef struct {
- long bar;
- long count;
- long foo;
- [size_is(count)] long s[*];
+ int *count;
+ } echo_Enum1;
+
+ typedef struct {
+ int *count;
+ } echo_Enum3;
+
+ typedef union {
+ [case(1)] echo_Enum1 enum1;
+ [case(3)] echo_Enum3 enum3;
+ } echo_EnumInfo;
+
+ typedef struct {
+ int level;
+ [switch_is(level)] echo_EnumInfo e;
} Struct1;
void TestCall (
- [out] Struct1 **s1
+ [out] Struct1 *s1
);
}