3 uuid("60a15ec5-4de8-11d7-a637-005056a20182"),
4 endpoint("ncacn_np:[\\pipe\\rpcecho]", "ncacn_ip_tcp:", "ncalrpc:"),
5 pointer_default(unique),
7 helpstring("Simple echo pipe"),
12 /* Add one to an integer */
15 [out] uint32
*out_data
17 /* Echo an array of bytes back at the caller */
20 [in] [size_is(len
)] uint8 in_data
[],
21 [out] [size_is(len
)] uint8 out_data
[]
23 /* Sink data to the server */
26 [in,size_is(len
)] uint8 data
[]
28 /* Source data from server */
31 [out,size_is(len
)] uint8 data
[]
36 [in,string,charset
(UTF16
)] uint16
*s1
,
37 [out,string,charset
(UTF16
)] uint16
**s2
41 /* test some alignment issues */
73 typedef [switch_type(uint16
)] union {
74 [case(1)] echo_info1 info1
;
75 [case(2)] echo_info2 info2
;
76 [case(3)] echo_info3 info3
;
77 [case(4)] echo_info4 info4
;
78 [case(5)] echo_info5 info5
;
79 [case(6)] echo_info6 info6
;
80 [case(7)] echo_info7 info7
;
83 NTSTATUS echo_TestCall2
(
85 [out,switch_is(level
)] echo_Info
*info
88 uint32 echo_TestSleep
(
97 typedef [v1_enum] enum {
107 typedef [switch_type(uint16
)] union {
108 [case(ECHO_ENUM1
)] echo_Enum1 e1
;
109 [case(ECHO_ENUM2
)] echo_Enum2 e2
;
113 [in,out,ref] echo_Enum1
*foo1
,
114 [in,out,ref] echo_Enum2
*foo2
,
115 [in,out,ref,switch_is(*foo1
)] echo_Enum3
*foo3
120 [size_is(x
)] uint16 surrounding
[*];
123 void echo_TestSurrounding
(
124 [in,out,ref] echo_Surrounding
*data
127 uint16 echo_TestDoublePointer
([in] uint16
***data
);