30#define SKIP_TYPE_DECLS
31#include "server_interp_s.h"
39#define PIPE "\\pipe\\wine_rpcrt4_test"
78static int (
__cdecl *pints_sum)(pints_t *pints);
80static int (
__cdecl *dot_pvectors)(pvectors_t *pvectors);
84static int (
__cdecl *sum_fixed_int_3d)(
int m[2][3][4]);
87static int (
__cdecl *sum_unique_conf_array)(
int x[],
int n);
110static int (
__cdecl *square_test_us)(test_us_t *tus);
113static int (
__cdecl *sum_padded2)(padded_t ps[2]);
114static int (
__cdecl *sum_padded_conf)(padded_t *ps,
int n);
117static int (
__cdecl *str_struct_len)(str_struct_t *
s);
118static int (
__cdecl *wstr_struct_len)(wstr_struct_t *
s);
130static void (
__cdecl *get_numbers_struct)(numbers_struct_t **
ns);
134static void (
__cdecl *get_ranged_enum)(renum_t *re);
137static void (
__cdecl *full_pointer_null_test)(
int *
a,
int *
b);
148#define SERVER_FUNCTIONS \
166 X(square_half_float) \
167 X(square_half_long) \
174 X(test_list_length) \
175 X(sum_fixed_int_3d) \
177 X(sum_conf_ptr_by_conf_ptr) \
178 X(sum_unique_conf_array) \
179 X(sum_unique_conf_ptr) \
182 X(get_number_array) \
187 X(sum_complex_array) \
191 X(dot_copy_vectors) \
199 X(sum_toplev_conf_2n) \
200 X(sum_toplev_conf_cond) \
211 X(make_pyramid_doub_carr) \
221 X(get_numbers_struct) \
224 X(echo_ranged_int2) \
226 X(context_handle_test) \
227 X(full_pointer_test) \
228 X(full_pointer_null_test) \
236 X(get_handle_by_ptr) \
251#define X(name) name = interp_##name;
260#define X(name) name = mixed_##name;
269 pNDRSContextMarshall2 = (
void *)
GetProcAddress(hrpcrt4,
"NDRSContextMarshall2");
270 pNDRSContextUnmarshall2 = (
void *)
GetProcAddress(hrpcrt4,
"NDRSContextUnmarshall2");
271 pRpcServerRegisterIfEx = (
void *)
GetProcAddress(hrpcrt4,
"RpcServerRegisterIfEx");
272 pRpcBindingSetAuthInfoExA = (
void *)
GetProcAddress(hrpcrt4,
"RpcBindingSetAuthInfoExA");
273 pRpcServerRegisterAuthInfoA = (
void *)
GetProcAddress(hrpcrt4,
"RpcServerRegisterAuthInfoA");
371 while (0 <
n-- && *
s++)
401 return a[0] +
a[1] +
a[2] +
a[3] +
a[4];
406 return *pints->pi + **pints->ppi + ***pints->pppi;
411 return *
pt->pc + *
pt->ps + *
pt->pl + *
pt->pf + *
pt->pd;
416 return p->pu->x * (*
p->pv)->
x +
p->pu->y * (*
p->pv)->y +
p->pu->z * (*
p->pv)->
z;
421 return sp->x +
sp->s->x;
428 case SUN_I:
return su->u.i * su->u.i;
430 case SUN_F2:
return su->u.f * su->u.f;
431 case SUN_PI:
return (*su->u.pi) * (*su->u.pi);
449 for (
i = 0;
i < 2; ++
i)
450 for (
j = 0;
j < 3; ++
j)
451 for (
k = 0;
k < 4; ++
k)
475 for(
i = 1;
i <
n1; ++
i)
496 ok(0 <=
n,
"RPC sum_var_array\n");
497 ok(
n <= 20,
"RPC sum_var_array\n");
517 int c[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
532 for (
i = 0;
i < *cps->pn; ++
i)
535 for (
i = 0;
i < 2 * cps->n; ++
i)
573 for (
i = 0;
i <
p->n; ++
i)
582 for (
i = 0;
i <
p->n; ++
i)
589 return u.x *
v.x +
u.y *
v.y +
u.z *
v.z;
594 int n =
atoi(tus->us.x);
602 case ENCU_I:
return eu->tagged_union.i *
eu->tagged_union.i;
603 case ENCU_F:
return eu->tagged_union.f *
eu->tagged_union.f;
622 ok(
s->f == E2,
"check_se2\n");
633 for (
i = 0;
i <
n; ++
i)
655 case E1:
return eue->tagged_union.i1 * eue->tagged_union.i1;
656 case E2:
return eue->tagged_union.f2 * eue->tagged_union.f2;
666 for (
i = 0;
i < 2 *
n; ++
i)
676 for (
i = 0;
i <
n; ++
i)
683 return a->c +
a->i +
a->s +
a->d;
700 for (
i = 0;
i <
n; ++
i)
707 return *
b->h.p1 + *
b->p2 + *
b->p3 +
b->c;
712 ok(!
null,
"RPC check_null\n");
729 for (
i = 0;
i <
dc->n; ++
i)
730 for (
j = 0;
j <
dc->a[
i]->n; ++
j)
741 for (
i = 0;
i <
n; ++
i)
746 for (
j = 0;
j <
v; ++
j)
747 t->a[
i]->a[
j] =
j + 1;
758 for (
i = 0;
i <
n; ++
i)
766 short str[] = {5,
'W',
'i',
'n',
'e', 0};
774 const char bossman[] =
"Jeremy White";
777 if (
name->size <
sizeof(bossman))
818 for (
i = 0;
i <
n; ++
i)
834 return (
char *)__FILE__;
839 return min( 100,
i +
j +
k );
857 unsigned char buf[20];
861 {{0x00000000,0x4114,0x0704,{0x23,0x01,0x00,0x00,0x00,0x00,0x00,0x00}},{1,0}},
862 {{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},
872 ok(binding !=
NULL,
"I_RpcGetCurrentCallHandle returned NULL\n");
874 if (!pNDRSContextMarshall2 || !pNDRSContextUnmarshall2)
876 win_skip(
"NDRSContextMarshall2 or NDRSContextUnmarshall2 not exported from rpcrt4.dll\n");
881 ok(
h !=
NULL,
"NDRSContextUnmarshall2 returned NULL\n");
886 ok(*(
ULONG *)
buf == 0,
"attributes should have been set to 0 instead of 0x%x\n", *(
ULONG *)
buf);
890 ok(
h !=
NULL,
"NDRSContextUnmarshall2 returned NULL\n");
894 h->userContext = (
void *)0xdeadbeef;
896 ok(*(
ULONG *)
buf == 0,
"attributes should have been set to 0 instead of 0x%x\n", *(
ULONG *)
buf);
903 ok(
h !=
NULL,
"NDRSContextUnmarshall2 returned NULL\n");
904 ok(
h->userContext == (
void *)0xdeadbeef,
"userContext of interface didn't unmarshal properly: %p\n",
h->userContext);
908 ok(
h !=
NULL,
"NDRSContextUnmarshall2 returned NULL\n");
911 h->userContext = (
void *)0xcafebabe;
913 ok(*(
ULONG *)
buf == 0,
"attributes should have been set to 0 instead of 0x%x\n", *(
ULONG *)
buf);
917 ok(
h !=
NULL,
"NDRSContextUnmarshall2 returned NULL\n");
918 ok(
h->userContext == (
void *)0xcafebabe,
"userContext of interface didn't unmarshal properly: %p\n",
h->userContext);
937 {{0x00000000,0x4114,0x0704,{0x23,0x01,0x00,0x00,0x00,0x00,0x00,0x00}},{1,0}},
938 {{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},
955 ok(binding !=
NULL,
"binding is NULL\n");
959 unsigned char* string_binding =
NULL;
960 unsigned char* object_uuid =
NULL;
961 unsigned char* protseq =
NULL;
962 unsigned char* network_address =
NULL;
964 unsigned char* network_options =
NULL;
968 ok(string_binding !=
NULL,
"string_binding is NULL\n");
972 ok(protseq !=
NULL && *protseq !=
'\0',
"protseq is %s\n", protseq);
973 ok(network_address !=
NULL && *network_address !=
'\0',
"network_address is %s\n", network_address);
977 ok(object_uuid !=
NULL && *object_uuid ==
'\0',
"object_uuid is %s\n", object_uuid);
979 ok(network_options !=
NULL && *network_options ==
'\0',
"network_options is %s\n", network_options);
1011 for (
i = 0;
i < (*ns)->length;
i++)
1013 (*ns)->numbers[
i].pi =
NULL;
1014 (*ns)->numbers[
i].ppi =
NULL;
1015 (*ns)->numbers[
i].pppi =
NULL;
1018 *(*ns)->numbers[0].pi = 5;
1023 ok(*
a == 42,
"Expected *a to be 42 instead of %d\n", *
a);
1024 ok(*
b == 42,
"Expected *b to be 42 instead of %d\n", *
a);
1025 ok(
a ==
b,
"Expected a (%p) to point to the same memory as b (%p)\n",
a,
b);
1030 ok(*
a == 42,
"Expected *a to be 42 instead of %d\n", *
a);
1031 ok(
b ==
NULL,
"Expected b to be NULL instead of %p\n",
b);
1063 hr = IStream_Stat(
a->tagged_union.stream, &st, STATFLAG_NONAME);
1069 return *
a[0] + *
a[1];
1074 return (*
a)[0] + (*a)[1];
1089 ok(ctx_handle == (
ctx_handle_t)0xdeadbeef,
"Unexpected ctx_handle %p\n", ctx_handle);
1094 ok(ctx_handle == (
ctx_handle_t)0xdeadbeef,
"Unexpected ctx_handle %p\n", ctx_handle);
1114 ok(
CreateProcessA(
NULL,
cmdline,
NULL,
NULL,
FALSE, 0
L,
NULL,
NULL, &
startup, &
info),
"CreateProcess\n");
1123 char string[] =
"I am a string";
1124 WCHAR wstring[] = {
'I',
' ',
'a',
'm',
' ',
'a',
' ',
'w',
's',
't',
'r',
'i',
'n',
'g', 0};
1125 int f[5] = {1, 3, 0, -2, -4};
1127 vector_t vec1 = {4, -2, 1}, vec2 = {-5, 2, 3}, *pvec2 = &vec2;
1128 pvectors_t pvecs = {&vec1, &pvec2};
1129 sp_inner_t spi = {42};
1130 sp_t
sp = {-13, &spi};
1135 padded_t padded2[2];
1137 int i1, i2, i3, *pi2, *pi3, **ppi3;
1145 str_struct_t
ss = {
string};
1146 wstr_struct_t
ws = {wstring};
1151 ok(int_return() ==
INT_CODE,
"RPC int_return\n");
1153 ok(square(7) == 49,
"RPC square\n");
1155 ok(
x == 19,
"RPC sum got %d\n",
x);
1156 c = sum_char(-23, 50);
1157 ok(
c == 27,
"RPC sum_char got %d\n", (
int)
c);
1158 h = sum_short(1122, -344);
1159 ok(
h == 778,
"RPC sum_short got %d\n", (
int)
h);
1160 x = sum_float(123.45, -32.2);
1161 ok(
x == 91,
"RPC sum_float got %d\n",
x);
1162 x = sum_double_int(-78, 148.46);
1163 ok(
x == 70,
"RPC sum_double_int got %d\n",
x);
1164 y = sum_hyper((
hyper)0x12345678 << 16, (
hyper)0x33557799 << 16);
1166 x = sum_hyper_int((
hyper)0x24242424 << 16, -((
hyper)0x24241212 << 16));
1167 ok(
x == 0x12120000,
"RPC hyper_int got 0x%x\n",
x);
1168 x = sum_char_hyper( 12, ((
hyper)0x42424242 << 32) | 0x33334444 );
1169 ok(
x == 0x33334450,
"RPC char_hyper got 0x%x\n",
x);
1173 ok(
x == 121,
"RPC square_out\n");
1177 ok(
x == 25,
"RPC square_ref\n");
1179 ok(str_length(
string) ==
strlen(
string),
"RPC str_length\n");
1180 ok(str_t_length(
string) ==
strlen(
string),
"RPC str_length\n");
1181 ok(dot_self(&
a) == 59,
"RPC dot_self\n");
1183 ok(str_struct_len(&
ss) ==
lstrlenA(
string),
"RPC str_struct_len\n");
1184 ok(wstr_struct_len(&
ws) ==
lstrlenW(wstring),
"RPC str_struct_len\n");
1187 u = square_half(3.0, &
v);
1188 ok(
u == 9.0,
"RPC square_half\n");
1189 ok(
v == 1.5,
"RPC square_half\n");
1192 s = square_half_float(3.0f, &
t);
1193 ok(
s == 9.0f,
"RPC square_half_float\n");
1194 ok(
t == 1.5f,
"RPC square_half_float\n");
1197 q = square_half_long(3, &
r);
1198 ok(
q == 9,
"RPC square_half_long\n");
1199 ok(
r == 1,
"RPC square_half_long\n");
1210 ok(pints_sum(&pints) == -13,
"RPC pints_sum\n");
1222 ok(ptypes_sum(&ptypes) == 33.0,
"RPC ptypes_sum\n");
1224 ok(dot_pvectors(&pvecs) == -21,
"RPC dot_pvectors\n");
1225 ok(dot_copy_vectors(vec1, vec2) == -21,
"RPC dot_copy_vectors\n");
1226 ok(sum_fixed_array(
f) == -2,
"RPC sum_fixed_array\n");
1227 ok(sum_sp(&
sp) == 29,
"RPC sum_sp\n");
1229 ok(enum_ord(E1) == 1,
"RPC enum_ord\n");
1230 ok(enum_ord(E2) == 2,
"RPC enum_ord\n");
1231 ok(enum_ord(E3) == 3,
"RPC enum_ord\n");
1232 ok(enum_ord(E4) == 4,
"RPC enum_ord\n");
1237 memset(&aligns, 0,
sizeof(aligns));
1242 ok(sum_aligns(&aligns) == 18.0,
"RPC sum_aligns\n");
1246 ok(sum_padded(&padded) == 5,
"RPC sum_padded\n");
1251 ok(sum_padded2(padded2) == 6,
"RPC sum_padded2\n");
1256 ok(sum_padded_conf(padded2, 2) == 6,
"RPC sum_padded_conf\n");
1265 ok(sum_bogus(&bogus) == 12,
"RPC sum_bogus\n");
1271 ok(!
strcmp(
str, __FILE__),
"get_filename() returned %s instead of %s\n",
str, __FILE__);
1275 x = echo_ranged_int(0,0,0);
1276 ok(
x == 0,
"echo_ranged_int() returned %d instead of 0\n",
x);
1277 x = echo_ranged_int(10,20,100);
1278 ok(
x == 100,
"echo_ranged_int() returned %d instead of 100\n",
x);
1279 x = echo_ranged_int2(40);
1280 ok(
x == 40,
"echo_ranged_int() returned %d instead of 40\n",
x);
1285 get_ranged_enum(&re);
1288 "get_ranged_enum() returned %x instead of RE3\n", re);
1305 ok(square_sun(&su) == 81.0,
"RPC square_sun\n");
1309 ok(square_sun(&su) == 25.0,
"RPC square_sun\n");
1313 ok(square_sun(&su) == 4.0,
"RPC square_sun\n");
1318 ok(square_sun(&su) == 121.0,
"RPC square_sun\n");
1321 eu.tagged_union.i = 7;
1322 ok(square_encu(&
eu) == 49.0,
"RPC square_encu\n");
1325 eu.tagged_union.f = 3.0;
1326 ok(square_encu(&
eu) == 9.0,
"RPC square_encu\n");
1329 ok(square_unencu(
ENCU_I, &uneu) == 16.0,
"RPC square_unencu\n");
1332 ok(square_unencu(
ENCU_F, &uneu) == 25.0,
"RPC square_unencu\n");
1335 eue.tagged_union.i1 = 8;
1336 ok(square_encue(&eue) == 64.0,
"RPC square_encue\n");
1339 eue.tagged_union.f2 = 10.0;
1340 ok(square_encue(&eue) == 100.0,
"RPC square_encue\n");
1346 ref = IStream_Release(ipu.tagged_union.stream);
1411 return start +
sizeof(
struct wire_us);
1418 wus.x =
atoi(pus->x);
1420 return buffer +
sizeof wus;
1430 return buffer +
sizeof wus;
1448 wire_bstr_t wb = (wire_bstr_t)
buffer;
1450 memcpy(&wb->data, *
b, wb->n *
sizeof wb->data[0]);
1457 wire_bstr_t wb = (wire_bstr_t)
buffer;
1474 int a[] = {1, 2, 3, 4};
1477 test_us_t tus = {{p1}};
1481 short bstr_data[] = { 5,
'H',
'e',
'l',
'l',
'o' };
1482 bstr_t bstr = &bstr_data[1], bstr2;
1489 ok(test_list_length(
list) == 3,
"RPC test_list_length\n");
1490 ok(square_puint(p1) == 121,
"RPC square_puint\n");
1497 ok(sum_puints(&pus) == 26,
"RPC sum_puints\n");
1509 ok(sum_cpuints(&cpus) == 26,
"RPC sum_puints\n");
1515 ok(square_test_us(&tus) == 121,
"RPC square_test_us\n");
1520 ok(sum_parr(
pa) == 6,
"RPC sum_parr\n");
1526 ok(sum_pcarr(
pa, 4) == 10,
"RPC sum_pcarr\n");
1528 ok(hash_bstr(bstr) ==
s_hash_bstr(bstr),
"RPC hash_bstr_data\n");
1542 wstr_array_t namesw;
1548 ok(!
strcmp(
name.
name,
"Jeremy Wh"),
"name didn't unmarshall properly, expected \"Jeremy Wh\", but got \"%s\"\n",
name.
name);
1555 ok(
n == 2,
"expected 2, got %d\n",
n);
1566 get_namesw(&
n, &namesw);
1567 ok(
n == 2,
"expected 2, got %d\n",
n);
1581 ok(sum_pcarr2(4, &pa2) == 10,
"RPC sum_pcarr2\n");
1585 ok(s123->f1 == 1 && s123->f2 == 2 && s123->f3 == 3,
"RPC get_s123\n");
1588 full_pointer_test(&
val, &
val);
1589 full_pointer_null_test(&
val,
NULL);
1596 for (
i = 0;
i <
dc->n; ++
i)
1597 for (
j = 0;
j <
dc->a[
i]->n; ++
j)
1598 if (
dc->a[
i]->a[
j] !=
j + 1)
1607 for (
i = 0;
i <
dc->n; ++
i)
1617 {{1, 2, 3, 4}, {-1, -3, -5, -7}, {0, 2, 4, 6}},
1618 {{1, -2, 3, -4}, {2, 3, 5, 7}, {-4, -1, -14, 4114}}
1620 int c[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
1621 int c2[] = {10, 100, 200};
1628 int ca[5] = {1, -2, 3, -4, 5};
1633 numbers_struct_t *
ns;
1635 int i0 = 1, i1 = 2, *ptr_array[2] = {&i0, &i1},
array[2] = {3, 4};
1639 const char str1[25] =
"Hello";
1640 ok(cstr_length(str1,
sizeof str1) ==
strlen(str1),
"RPC cstr_length\n");
1643 ok(sum_fixed_int_3d(
m) == 4116,
"RPC sum_fixed_int_3d\n");
1645 ok(sum_conf_array(
c, 10) == 45,
"RPC sum_conf_array\n");
1646 ok(sum_conf_array(&
c[5], 2) == 11,
"RPC sum_conf_array\n");
1647 ok(sum_conf_array(&
c[7], 1) == 7,
"RPC sum_conf_array\n");
1648 ok(sum_conf_array(&
c[2], 0) == 0,
"RPC sum_conf_array\n");
1650 ok(sum_conf_ptr_by_conf_ptr(1, c2,
c) == 45,
"RPC sum_conf_ptr_by_conf_ptr\n");
1651 ok(sum_conf_ptr_by_conf_ptr(3, c2,
c) == 345,
"RPC sum_conf_ptr_by_conf_ptr\n");
1653 ok(sum_conf_ptr_by_conf_ptr(3, c2,
c) == 300,
"RPC sum_conf_ptr_by_conf_ptr\n");
1655 ok(sum_unique_conf_array(
ca, 4) == -2,
"RPC sum_unique_conf_array\n");
1656 ok(sum_unique_conf_ptr(
ca, 5) == 3,
"RPC sum_unique_conf_array\n");
1657 ok(sum_unique_conf_ptr(
NULL, 10) == 0,
"RPC sum_unique_conf_array\n");
1659 get_number_array(c3, &
n);
1660 ok(
n == 10,
"RPC get_num_array\n");
1662 ok(c3[
n-1] ==
c[
n-1],
"get_num_array returned wrong value %d @ %d\n",
1664 ok(sum_var_array(
c, 10) == 45,
"RPC sum_conf_array\n");
1665 ok(sum_var_array(&
c[5], 2) == 11,
"RPC sum_conf_array\n");
1666 ok(sum_var_array(&
c[7], 1) == 7,
"RPC sum_conf_array\n");
1667 ok(sum_var_array(&
c[2], 0) == 0,
"RPC sum_conf_array\n");
1669 ok(dot_two_vectors(
vs) == -4,
"RPC dot_two_vectors\n");
1677 ok(sum_cs(
cs) == 1,
"RPC sum_cs\n");
1685 ok(sum_cps(&cps) == 53,
"RPC sum_cps\n");
1691 ok(sum_cpsc(&
cpsc) == 6,
"RPC sum_cpsc\n");
1696 ok(sum_cpsc(&
cpsc) == 10,
"RPC sum_cpsc\n");
1699 ok(get_cpsc(5, &
cpsc) == 45,
"RPC sum_cpsc\n");
1700 ok(
cpsc.a == 10,
"RPC get_cpsc %u\n",
cpsc.a );
1701 for (
n = 0;
n < 10;
n++)
ok(
cpsc.ca[
n] ==
n,
"RPC get_cpsc[%d] = %d\n",
n,
cpsc.ca[
n] );
1703 memset( tmp, 0x33,
sizeof(tmp) );
1705 ok(get_cpsc(4, &
cpsc) == 28,
"RPC sum_cpsc\n");
1706 ok(
cpsc.a == 8,
"RPC get_cpsc %u\n",
cpsc.a );
1707 ok(
cpsc.ca == tmp,
"RPC get_cpsc %p/%p\n",
cpsc.ca, tmp );
1708 for (
n = 0;
n < 8;
n++)
ok(
cpsc.ca[
n] ==
n,
"RPC get_cpsc[%d] = %d\n",
n,
cpsc.ca[
n] );
1710 ok(sum_toplev_conf_2n(
c, 3) == 15,
"RPC sum_toplev_conf_2n\n");
1711 ok(sum_toplev_conf_cond(
c, 5, 6, 1) == 10,
"RPC sum_toplev_conf_cond\n");
1712 ok(sum_toplev_conf_cond(
c, 5, 6, 0) == 15,
"RPC sum_toplev_conf_cond\n");
1725 ok(sum_doub_carr(
dc) == 19,
"RPC sum_doub_carr\n");
1731 make_pyramid_doub_carr(4, &
dc);
1735 ok(sum_L1_norms(2,
vs) == 21,
"RPC sum_L1_norms\n");
1741 get_numbers(1, 1,
api);
1742 ok(
api[0].
pi ==
pi,
"RPC conformant varying array [out] pointer changed from %p to %p\n",
pi,
api[0].
pi);
1743 ok(*
api[0].
pi == 0,
"pi unmarshalled incorrectly %d\n", *
api[0].
pi);
1750 ns->numbers[0].pi =
pi;
1751 get_numbers_struct(&
ns);
1752 ok(
ns->numbers[0].pi ==
pi,
"RPC conformant varying struct embedded pointer changed from %p to %p\n",
pi,
ns->numbers[0].pi);
1753 ok(*
ns->numbers[0].pi == 5,
"pi unmarshalled incorrectly %d\n", *
ns->numbers[0].pi);
1759 pi[0] = 3; rpi[0] = &
pi[0];
1760 pi[1] = 5; rpi[1] = &
pi[1];
1761 pi[2] = -2; rpi[2] = &
pi[2];
1762 pi[3] = -1; rpi[3] = &
pi[3];
1763 pi[4] = -4; rpi[4] = &
pi[4];
1764 ok(sum_complex_array(5, rpi) == 1,
"RPC sum_complex_array\n");
1767 ok(sum_ptr_array(ptr_array) == 3,
"RPC sum_ptr_array\n");
1768 ok(sum_array_ptr(&
array) == 7,
"RPC sum_array_ptr\n");
1777 unsigned char *principal;
1780 ok(binding !=
NULL,
"I_RpcGetCurrentCallHandle returned NULL\n");
1782 level = authnsvc = 0xdeadbeef;
1784 principal = (
unsigned char *)0xdeadbeef;
1791 win_skip(
"RpcBindingInqAuthClientA not supported\n");
1796 ok(principal != (
unsigned char *)0xdeadbeef,
"principal unchanged\n");
1800 ok(principal !=
NULL,
"NULL principal\n");
1837 ok(principal == (
unsigned char *)0xdeadbeef,
"got %s\n", principal);
1839 ok(authnsvc == 0xdeadbeef,
"got %u\n", authnsvc);
1849 get_handle_by_ptr(&handle2);
1850 test_handle(handle2);
1860 context_handle_test();
1880#define test_is_server_listening(a,b) _test_is_server_listening(__LINE__,a,b)
1885 ok_(__FILE__,
line)(
status == expected_status,
"RpcMgmtIsServerListening returned %u, expected %u\n",
1886 status, expected_status);
1889#define test_is_server_listening2(a,b,c) _test_is_server_listening2(__LINE__,a,b,c)
1896 "RpcMgmtIsServerListening returned %u, expected %u or %u\n",
1897 status, expected_status, expected_status2);
1903 static unsigned char iptcp[] =
"ncacn_ip_tcp";
1904 static unsigned char np[] =
"ncacn_np";
1905 static unsigned char ncalrpc[] =
"ncalrpc";
1906 static unsigned char address[] =
"127.0.0.1";
1907 static unsigned char address_np[] =
"\\\\.";
1908 static unsigned char port[] =
PORT;
1909 static unsigned char pipe[] =
PIPE;
1910 static unsigned char guid[] =
"00000000-4114-0704-2301-000000000000";
1912 unsigned char *binding;
1950 else if (
strcmp(
test,
"ncalrpc_autolisten") == 0)
1961 ok(int_return() ==
INT_CODE,
"RPC int_return\n");
1966 else if (
strcmp(
test,
"ncalrpc_secure") == 0)
1993 else if (
strcmp(
test,
"np_basic_interp") == 0)
2013 static unsigned char iptcp[] =
"ncacn_ip_tcp";
2014 static unsigned char port[] =
PORT;
2015 static unsigned char np[] =
"ncacn_np";
2016 static unsigned char pipe[] =
PIPE;
2017 static unsigned char ncalrpc[] =
"ncalrpc";
2018 static unsigned char guid[] =
"00000000-4114-0704-2301-000000000000";
2026 ok(iptcp_status ==
RPC_S_OK,
"RpcServerUseProtseqEp(ncacn_ip_tcp) failed with status %d\n", iptcp_status);
2029 ok(ncalrpc_status ==
RPC_S_OK,
"RpcServerUseProtseqEp(ncalrpc) failed with status %d\n", ncalrpc_status);
2033 skip(
"Protocol sequence ncacn_np is not supported\n");
2035 ok(np_status ==
RPC_S_OK,
"RpcServerUseProtseqEp(ncacn_np) failed with status %d\n", np_status);
2037 if (pRpcServerRegisterIfEx)
2039 trace(
"Using RpcServerRegisterIfEx\n");
2040 status = pRpcServerRegisterIfEx(s_IMixedServer_v0_0_s_ifspec,
NULL,
NULL,
2044 status = pRpcServerRegisterIfEx(s_IInterpServer_v0_0_s_ifspec,
NULL,
NULL,
2066 skip(
"tcp tests skipped due to earlier failure\n");
2076 skip(
"lrpc tests skipped due to earlier failure\n");
2085 skip(
"np_basic tests skipped due to earlier failure\n");
2104 if (pRpcServerRegisterIfEx)
2106 status = pRpcServerRegisterIfEx(s_IMixedServer_v0_0_s_ifspec,
NULL,
NULL,
2150 HANDLE client_thread, wait_listen_thread;
2164 ok(wait_listen_thread !=
NULL,
"CreateThread failed\n");
2167 ok(client_thread !=
NULL,
"CreateThread failed\n");
2195 static unsigned char np[] =
"ncacn_np";
2196 static unsigned char address_np[] =
"\\\\.";
2197 static unsigned char pipe[] =
PIPE "listen_test";
2198 static unsigned char ncalrpc[] =
"ncalrpc";
2199 static unsigned char guid[] =
"00000000-4114-0704-2302-000000000000";
2200 unsigned char *binding;
2269 trace(
"running server process...\n");
2270 ok(
CreateProcessA(
NULL,
cmdline,
NULL,
NULL,
TRUE, 0
L,
NULL,
NULL, &
startup, &
info),
"CreateProcess\n");
2276 return info.hProcess;
2281 static unsigned char np[] =
"ncacn_np";
2282 static unsigned char pipe[] =
PIPE "term_test";
2320 static unsigned char np[] =
"ncacn_np";
2321 static unsigned char address_np[] =
"\\\\.";
2322 static unsigned char pipe[] =
PIPE "term_test";
2323 unsigned char *binding;
2394 if (
hr !=
S_OK)
goto done;
2396 hr = INetFwMgr_get_LocalPolicy( mgr, &
policy );
2398 if (
hr !=
S_OK)
goto done;
2401 if (
hr !=
S_OK)
goto done;
2409 if (mgr) INetFwMgr_Release( mgr );
2411 return (
enabled == VARIANT_TRUE);
2422 static const WCHAR testW[] = {
'r',
'p',
'c',
'r',
't',
'4',
'_',
't',
'e',
's',
't',0};
2441 if (
hr !=
S_OK)
goto done;
2443 hr = INetFwMgr_get_LocalPolicy( mgr, &
policy );
2445 if (
hr !=
S_OK)
goto done;
2448 if (
hr !=
S_OK)
goto done;
2450 hr = INetFwProfile_get_AuthorizedApplications(
profile, &apps );
2452 if (
hr !=
S_OK)
goto done;
2455 &IID_INetFwAuthorizedApplication, (
void **)&app );
2457 if (
hr !=
S_OK)
goto done;
2459 hr = INetFwAuthorizedApplication_put_ProcessImageFileName( app,
image );
2460 if (
hr !=
S_OK)
goto done;
2463 hr = INetFwAuthorizedApplication_put_Name( app,
name );
2466 if (
hr !=
S_OK)
goto done;
2469 hr = INetFwAuthorizedApplications_Add( apps, app );
2471 hr = INetFwAuthorizedApplications_Remove( apps,
image );
2476 if (app) INetFwAuthorizedApplication_Release( app );
2477 if (apps) INetFwAuthorizedApplications_Release( apps );
2480 if (mgr) INetFwMgr_Release( mgr );
2534 if (firewall_enabled)
2541 firewall_enabled =
FALSE;
2542 firewall_disabled =
TRUE;
2546 skip(
"can't authorize app in firewall %08x\n",
hr);
2551 trace(
"no privileges, skipping tests to avoid firewall dialog\n");
2555 if (!firewall_enabled)
server();
2561 win_skip(
"Skipping reconnect tests on too old Windows version\n");
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
struct outqueuenode * tail
static void startup(void)
void ls(int argc, const char *argv[])
int get_name(unsigned char **pos, uint32_t *remaining, const char **out_name)
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
#define GetProcAddress(x, y)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define GetCurrentProcess()
#define HeapFree(x, y, z)
#define WideCharToMultiByte
static const WCHAR * get_filename(const WCHAR *name, const WCHAR *endptr)
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
WDF_INTERRUPT_POLICY policy
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble GLdouble q
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLboolean GLboolean GLboolean GLboolean a
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
void *__RPC_USER MIDL_user_allocate(SIZE_T size)
void __RPC_USER MIDL_user_free(void *p)
static const WCHAR testW[]
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
#define sprintf(buf, format,...)
static HANDLE ULONG_PTR DWORD threads
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
static void test_handle_return(void)
int __cdecl s_sum_unique_conf_ptr(int *x, int n)
int __cdecl s_sum_toplev_conf_2n(int *x, int n)
void __cdecl s_get_namesw(int *n, wstr_array_t *names)
static DWORD WINAPI basic_tests_thread(void *arg)
int __cdecl s_sum_var_array(int x[20], int n)
static void set_interp_interface(void)
void __RPC_USER bstr_t_UserFree(ULONG *flags, bstr_t *b)
int __cdecl s_sum_doub_carr(doub_carr_t *dc)
signed char __cdecl s_sum_char(signed char x, signed char y)
static void test_server_listening(void)
void __cdecl s_get_ranged_enum(renum_t *re)
int __cdecl s_str_length(const char *s)
int __cdecl s_sum_hyper_int(hyper x, hyper y)
void __cdecl s_stop_autolisten(void)
void __cdecl s_full_pointer_test(int *a, int *b)
int __cdecl s_sum_conf_array(int x[], int n)
int __cdecl s_dot_two_vectors(vector_t vs[2])
unsigned char *__RPC_USER us_t_UserUnmarshal(ULONG *flags, unsigned char *buffer, us_t *pus)
int __cdecl s_echo_ranged_int(int i, int j, int k)
int __cdecl s_sum_parr(int *a[3])
int __cdecl s_sum_cpuints(cpuints_t *p)
ULONG __RPC_USER puint_t_UserSize(ULONG *flags, ULONG start, puint_t *p)
static void pointer_tests(void)
int __cdecl s_wstr_struct_len(wstr_struct_t *s)
double __cdecl s_square_encue(encue_t *eue)
int __cdecl s_sum_cps(cps_t *cps)
int __cdecl s_sum_pcarr(int *a[], int n)
s123_t *__cdecl s_get_s123(void)
int __cdecl s_sum_padded_conf(padded_t *ps, int n)
static const WCHAR helloW[]
int __cdecl s_sum_char_hyper(signed char x, hyper y)
static HRESULT set_firewall(enum firewall_op op)
static void basic_tests(void)
static void run_server(HANDLE ready_event)
int __cdecl s_sum_pcarr2(int n, int **pa)
void __cdecl s_get_name(name_t *name)
int __cdecl s_test_list_length(test_list_t *list)
void __cdecl s_get_a_bstr(bstr_t *b)
static void array_tests(void)
double __cdecl s_square_unencu(int t, unencu_t *eu)
int __cdecl s_sum_sp(sp_t *sp)
int __cdecl s_dot_pvectors(pvectors_t *p)
unsigned char *__RPC_USER puint_t_UserUnmarshal(ULONG *flags, unsigned char *buffer, puint_t *p)
unsigned char *__RPC_USER bstr_t_UserUnmarshal(ULONG *flags, unsigned char *buffer, bstr_t *b)
static void union_tests(void)
unsigned char *__RPC_USER us_t_UserMarshal(ULONG *flags, unsigned char *buffer, us_t *pus)
static void make_cmdline(char buffer[MAX_PATH], const char *test)
int __cdecl s_sum_toplev_conf_cond(int *x, int a, int b, int c)
static DWORD WINAPI listen_test_client_thread(void *binding)
static void free_pyramid_doub_carr(doub_carr_t *dc)
float __cdecl s_square_half_float(float x, float *y)
void __cdecl s_full_pointer_null_test(int *a, int *b)
hyper __cdecl s_sum_hyper(hyper x, hyper y)
void __cdecl s_check_null(int *null)
static str_array_t * names
double __cdecl s_sum_aligns(aligns_t *a)
static void test_reconnect(void)
static HANDLE stop_wait_event
short __cdecl s_sum_short(short x, short y)
double __cdecl s_square_half(double x, double *y)
void __RPC_USER us_t_UserFree(ULONG *flags, us_t *pus)
int __cdecl s_sum_padded(padded_t *p)
int __cdecl s_enum_ord(e_t e)
static void test_stop_wait_for_call(unsigned char *binding)
void __cdecl s_square_out(int x, int *y)
static test_list_t * null_list(void)
static s123_t *__cdecl * get_s123(void)
int __cdecl s_square_test_us(test_us_t *tus)
int __cdecl s_sum_puints(puints_t *p)
static char * domain_and_user
double __cdecl s_square_encu(encu_t *eu)
int __cdecl s_pints_sum(pints_t *pints)
int __cdecl s_sum_cs(cs_t *cs)
static UUID RPC_MGR_EPV unsigned unsigned RPC_IF_CALLBACK_FN *static RPC_SECURITY_QOS *static RPC_AUTH_KEY_RETRIEVAL_FN
static BOOL old_windows_version
void __cdecl s_get_numbers(int length, int size, pints_t n[])
static void set_mixed_interface(void)
static BOOL is_process_elevated(void)
int __cdecl s_str_t_length(str_t s)
static unsigned(__cdecl *hash_bstr)(bstr_t s)
static HANDLE create_server_process(void)
int __cdecl s_sum_array_ptr(int(*a)[2])
static UUID RPC_MGR_EPV unsigned unsigned RPC_IF_CALLBACK_FN *static RPC_CSTR
str_t __cdecl s_get_filename(void)
void __cdecl s_make_pyramid_doub_carr(unsigned char n, doub_carr_t **dc)
int __cdecl s_sum_double_int(int x, double y)
static rint_t(__cdecl *echo_ranged_int)(int i
int __cdecl s_sum(int x, int y)
#define test_is_server_listening2(a, b, c)
static void run_client(const char *test)
static UUID RPC_MGR_EPV unsigned unsigned RPC_IF_CALLBACK_FN *static RPC_SECURITY_QOS *static LPVOID
void __RPC_USER puint_t_UserFree(ULONG *flags, puint_t *p)
void __RPC_USER ctx_handle_t_rundown(ctx_handle_t ctx_handle)
void __cdecl s_get_numbers_struct(numbers_struct_t **ns)
unsigned char *__RPC_USER puint_t_UserMarshal(ULONG *flags, unsigned char *buffer, puint_t *p)
ctx_handle_t __cdecl s_get_handle(void)
void __cdecl s_get_names(int *n, str_array_t *names)
int __cdecl s_echo_ranged_int2(int i)
void __cdecl s_square_ref(int *x)
int __cdecl s_cstr_length(const char *s, int n)
static DWORD WINAPI wait_listen_proc(void *arg)
int __cdecl s_str_struct_len(str_struct_t *s)
static str_t(__cdecl *get_filename)(void)
static UUID RPC_MGR_EPV unsigned int
int __cdecl s_sum_bogus(bogus_t *b)
int __cdecl s_sum_fixed_int_3d(int m[2][3][4])
void __cdecl s_check_se2(se_t *s)
int __cdecl s_dot_copy_vectors(vector_t u, vector_t v)
ULONG __RPC_USER us_t_UserSize(ULONG *flags, ULONG start, us_t *pus)
int __cdecl s_sum_conf_ptr_by_conf_ptr(int n1, int *n2_then_x1, int *x2)
static BOOL is_firewall_enabled(void)
int __cdecl s_sum_complex_array(int n, refpint_t pi[])
LONG __cdecl s_square_half_long(LONG x, LONG *y)
static void run_tests(void)
int __cdecl s_sum_float(float x, float y)
static float(__cdecl *square_half_float)(float x
static const char * progname
void __cdecl s_test_handle(ctx_handle_t ctx_handle)
void __cdecl s_get_number_array(int x[20], int *n)
static ctx_handle_t(__cdecl *get_handle)(void)
static void _test_is_server_listening2(unsigned line, RPC_BINDING_HANDLE binding, RPC_STATUS expected_status, RPC_STATUS expected_status2)
int __cdecl s_sum_padded2(padded_t ps[2])
int __cdecl s_int_return(void)
static int check_pyramid_doub_carr(doub_carr_t *dc)
static test_list_t * make_list(test_list_t *tail)
static UUID RPC_MGR_EPV unsigned unsigned RPC_IF_CALLBACK_FN *static RPC_AUTH_IDENTITY_HANDLE
int __cdecl s_sum_fixed_array(int a[5])
void __cdecl s_get_handle_by_ptr(ctx_handle_t *r)
unsigned char *__RPC_USER bstr_t_UserMarshal(ULONG *flags, unsigned char *buffer, bstr_t *b)
int __cdecl s_sum_cpsc(cpsc_t *cpsc)
#define test_is_server_listening(a, b)
double __cdecl s_square_sun(sun_t *su)
int __cdecl s_dot_self(vector_t *v)
unsigned __cdecl s_hash_bstr(bstr_t b)
double __cdecl s_ptypes_sum(ptypes_t *pt)
static void InitFunctionPointers(void)
int __cdecl s_sum_unique_conf_array(int x[], int n)
static void free_list(test_list_t *list)
void __cdecl s_context_handle_test(void)
void __cdecl s_authinfo_test(unsigned int protseq, int secure)
static const WCHAR worldW[]
int __cdecl s_sum_L1_norms(int n, vector_t *vs)
static void set_auth_info(RPC_BINDING_HANDLE handle)
int __cdecl s_square_puint(puint_t p)
ULONG __RPC_USER bstr_t_UserSize(ULONG *flags, ULONG start, bstr_t *b)
void __cdecl s_ip_test(ipu_t *a)
static void _test_is_server_listening(unsigned line, RPC_BINDING_HANDLE binding, RPC_STATUS expected_status)
int __cdecl s_get_cpsc(int n, cpsc_t *cpsc)
static char * xstrdup(const char *s)
int __cdecl s_sum_ptr_array(int *a[2])
void __cdecl s_stop(void)
int __cdecl s_square(int x)
unsigned __int3264 UINT_PTR
@ COINIT_APARTMENTTHREADED
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
static int sum(int x_, int y_)
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingServerFromClient(RPC_BINDING_HANDLE ClientBinding, RPC_BINDING_HANDLE *ServerBinding)
RPC_STATUS WINAPI RpcStringBindingParseA(RPC_CSTR StringBinding, RPC_CSTR *ObjUuid, RPC_CSTR *Protseq, RPC_CSTR *NetworkAddr, RPC_CSTR *Endpoint, RPC_CSTR *Options)
RPC_STATUS WINAPI RpcRevertToSelf(void)
RPC_STATUS WINAPI RpcStringBindingComposeA(RPC_CSTR ObjUuid, RPC_CSTR Protseq, RPC_CSTR NetworkAddr, RPC_CSTR Endpoint, RPC_CSTR Options, RPC_CSTR *StringBinding)
RPC_STATUS WINAPI RpcBindingToStringBindingA(RPC_BINDING_HANDLE Binding, RPC_CSTR *StringBinding)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExA(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc, ULONG Flags)
RPC_STATUS WINAPI RpcBindingFromStringBindingA(RPC_CSTR StringBinding, RPC_BINDING_HANDLE *Binding)
RPC_STATUS WINAPI RpcImpersonateClient(RPC_BINDING_HANDLE BindingHandle)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientA(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc)
RPC_STATUS WINAPI RpcServerListen(UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait)
RPC_STATUS WINAPI RpcServerRegisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv)
RPC_STATUS WINAPI RpcMgmtWaitServerListen(void)
RPC_STATUS WINAPI RpcServerUseProtseqEpA(RPC_CSTR Protseq, UINT MaxCalls, RPC_CSTR Endpoint, LPVOID SecurityDescriptor)
RPC_STATUS WINAPI RpcMgmtIsServerListening(RPC_BINDING_HANDLE Binding)
RPC_BINDING_HANDLE WINAPI I_RpcGetCurrentCallHandle(void)
RPC_STATUS WINAPI RpcServerUnregisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, UINT WaitForCallsToComplete)
RPC_STATUS WINAPI RpcMgmtStopServerListening(RPC_BINDING_HANDLE Binding)
#define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH
#define RPC_C_QOS_IDENTITY_STATIC
#define RPC_C_LISTEN_MAX_CALLS_DEFAULT
I_RPC_HANDLE RPC_BINDING_HANDLE
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY
#define RPC_IF_AUTOLISTEN
#define RPC_C_IMP_LEVEL_IMPERSONATE
RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN(RPC_IF_HANDLE InterfaceUuid, void *Context)
#define RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH
#define RPC_C_AUTHN_WINNT
struct _RPC_SERVER_INTERFACE RPC_SERVER_INTERFACE
#define NDR_LOCAL_DATA_REPRESENTATION
#define RPC_S_ACCESS_DENIED
int WINAPI UuidIsNil(UUID *Uuid, RPC_STATUS *Status)
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
#define RpcExceptionCode()
#define midl_user_allocate
int winetest_get_mainargs(char ***pargv)
void winetest_wait_child_process(HANDLE process)
int fnprintf(const char *format,...)
BOOLEAN WINAPI GetUserNameExA(EXTENDED_NAME_FORMAT NameFormat, LPSTR lpNameBuffer, PULONG nSize)
RPC_SYNTAX_IDENTIFIER InterfaceId
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
#define FIELD_OFFSET(t, f)
_Must_inspect_result_ _In_ WDFUSBPIPE PIPE
DWORD WINAPI GetLastError(void)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
#define RPC_S_PROTSEQ_NOT_SUPPORTED
#define RPC_S_ALREADY_LISTENING
#define RPC_S_BINDING_HAS_NO_AUTH
#define RPC_S_CANNOT_SUPPORT
#define RPC_S_NOT_LISTENING
#define RPC_S_UNKNOWN_MGR_TYPE
enum _TOKEN_ELEVATION_TYPE TOKEN_ELEVATION_TYPE