diff options
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r-- | source4/librpc/idl/dfs.idl | 26 | ||||
-rw-r--r-- | source4/librpc/idl/echo.idl | 23 |
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 ); } |