27#define WIN32_NO_STATUS
44#define RpcExceptionFilter I_RpcExceptionFilter
58 { 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} },
59 { 0xdeadbeef, 0xdead, 0xbeef, {0x10, 0x21, 0x35, 0x56, 0x89, 0xa0, 0xf4, 0x8a} },
60 { 0xabadfeed, 0x49ff, 0xbead, {0x8a, 0xf4, 0xa0, 0x89, 0x56, 0x35, 0x21, 0x10} },
61 { 0x93da375c, 0x1324, 0x1355, {0x87, 0xff, 0x49, 0x44, 0x34, 0x44, 0x22, 0x19} },
62 { 0xdeadbeef, 0xdead, 0xbeef, {0x10, 0x21, 0x35, 0x56, 0x89, 0xa0, 0xf4, 0x8b} },
63 { 0x9badfeed, 0x49ff, 0xbead, {0x8a, 0xf4, 0xa0, 0x89, 0x56, 0x35, 0x21, 0x10} },
64 { 0x00000000, 0x0001, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} },
65 { 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01} },
66 { 0x12312312, 0x1231, 0x1231, {0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xff} },
67 { 0x11111111, 0x1111, 0x1111, {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11} }
72 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE },
73 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE },
74 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE },
75 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE },
76 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE },
77 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE },
78 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE },
79 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE },
80 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE },
81 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE },
82 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE }
87 UUID Uuid1, Uuid2, *PUuid1, *PUuid2;
92 for (i1 = 0; i1 < 11; i1++)
94 for (i2 = 0; i2 < 11; i2++)
120 WCHAR wstrx[100], wx;
129 for (i1 = 0; i1 < 10; i1++) {
133 ok(
UuidEqual(&Uuid1, &Uuid2, &rslt),
"Uuid -> String -> Uuid transform\n" );
135 for (i2 = 0; i2 < 36; i2++) {
145 for (i1 = 0; i1 < 10; i1++) {
148 ok( (rslt ==
RPC_S_OK),
"Simple UUID->WString copy\n" );
150 ok(
UuidEqual(&Uuid1, &Uuid2, &rslt),
"Uuid -> WString -> Uuid transform\n" );
152 for (i2 = 0; i2 < 36; i2++) {
164 char bufferInvalid [1024];
171 ok(dwCount,
"Cannot set up for DceErrorInqText\n");
202 {{0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x34}},{0,0}},
203 {{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},
217 unsigned char *
binding, *principal;
221 static unsigned char foo[] =
"foo";
222 static unsigned char ncacn_ip_tcp[] =
"ncacn_ip_tcp";
223 static unsigned char address[] =
"127.0.0.1";
224 static unsigned char endpoint[] =
"4114";
225 static unsigned char spn[] =
"principal";
235 "wrong RpcMgmtStopServerListening error (%lu)\n",
status);
239 "wrong RpcMgmtWaitServerListen error status (%lu)\n",
status);
243 "wrong RpcServerListen error (%lu)\n",
status);
256 "wrong RpcServerListen error (%lu)\n",
status);
278 level = authnsvc = authzsvc = 0;
279 principal = (
unsigned char *)0xdeadbeef;
286 ok(principal != (
unsigned char *)0xdeadbeef,
"expected valid principal, got %p\n", principal);
317 0x05,0x00,0x13,0x00,0x0d,0x00,0xdb,0xf1,
318 0xa4,0x47,0xca,0x67,0x10,0xb3,0x1f,0x00,
319 0xdd,0x01,0x06,0x62,0xda,0x00,0x00,0x02,
320 0x00,0x00,0x00,0x13,0x00,0x0d,0x04,0x5d,
321 0x88,0x8a,0xeb,0x1c,0xc9,0x11,0x9f,0xe8,
322 0x08,0x00,0x2b,0x10,0x48,0x60,0x02,0x00,
323 0x02,0x00,0x00,0x00,0x01,0x00,0x0b,0x02,
324 0x00,0x00,0x00,0x01,0x00,0x07,0x02,0x00,
325 0x00,0x87,0x01,0x00,0x09,0x04,0x00,0x0a,
331 0x05,0x00,0x13,0x00,0x0d,0x00,0xdb,0xf1,
332 0xa4,0x47,0xca,0x67,0x10,0xb3,0x1f,0x00,
333 0xdd,0x01,0x06,0x62,0xda,0x00,0x00,0x02,
334 0x00,0x00,0x00,0x13,0x00,0x0d,0x04,0x5d,
335 0x88,0x8a,0xeb,0x1c,0xc9,0x11,0x9f,0xe8,
336 0x08,0x00,0x2b,0x10,0x48,0x60,0x02,0x00,
337 0x02,0x00,0x00,0x00,0x01,0x00,0x0b,0x00,
338 0x00,0x01,0x00,0x07,0x02,0x00,0x00,0x87,
339 0x01,0x00,0x09,0x04,0x00,0x0a,0x00,0x00,
347 static const RPC_SYNTAX_IDENTIFIER mapi_if_id = { { 0xa4f1db00, 0xca47, 0x1067, { 0xb3, 0x1f, 0x00, 0xdd, 0x01, 0x06, 0x62, 0xda } }, { 0, 0 } };
348 static const RPC_SYNTAX_IDENTIFIER ndr_syntax = { { 0x8a885d04, 0x1ceb, 0x11c9, { 0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60 } }, { 2, 0 } };
353 ret =
TowerConstruct(&mapi_if_id, &ndr_syntax,
"ncacn_ip_tcp",
"135",
"10.0.0.1", &tower);
356 "TowerConstruct failed with error %ld\n",
ret);
360 win_skip(
"TowerConstruct failed, we are most likely on Windows Vista\n");
375 ok(same,
"Tower data differs\n");
390 ok(!
memcmp(&
object, &mapi_if_id,
sizeof(mapi_if_id)),
"object id didn't match\n");
391 ok(!
memcmp(&syntax, &ndr_syntax,
sizeof(syntax)),
"syntax id didn't match\n");
392 ok(!
strcmp(protseq,
"ncacn_ip_tcp"),
"protseq was \"%s\" instead of \"ncacn_ip_tcp\"\n", protseq);
406 ret =
TowerConstruct(&mapi_if_id, &ndr_syntax,
"ncacn_ip_tcp",
"135",
"localhost", &tower);
412 "address was \"%s\" instead of \"0.0.0.0\"\n",
address);
423 "TowerExplode failed with error %ld\n",
ret);
445 for (rpc_status = 0; rpc_status < 10000; rpc_status++)
447 LONG expected_win32status;
564 expected_win32status = rpc_status;
567 ok(win32status == expected_win32status ||
568 broken(missing && win32status == rpc_status),
569 "I_RpcMapWin32Status(%ld) should have returned 0x%lx instead of 0x%lx%s\n",
570 rpc_status, expected_win32status, win32status,
571 broken(missing) ?
" (or have returned with the given status)" :
"");
577 static unsigned char valid_binding[] =
"00000000-0000-0000-c000-000000000046@ncacn_np:.[endpoint=\\pipe\\test]";
578 static unsigned char valid_binding2[] =
"00000000-0000-0000-c000-000000000046@ncacn_np:.[\\pipe\\test]";
579 static unsigned char invalid_uuid_binding[] =
"{00000000-0000-0000-c000-000000000046}@ncacn_np:.[endpoint=\\pipe\\test]";
580 static unsigned char invalid_ep_binding[] =
"00000000-0000-0000-c000-000000000046@ncacn_np:.[endpoint=test]";
581 static unsigned char invalid_binding[] =
"00000000-0000-0000-c000-000000000046@ncacn_np";
584 unsigned char *protseq;
585 unsigned char *network_addr;
592 ok(!
strcmp((
char *)
uuid,
"00000000-0000-0000-c000-000000000046"),
"uuid should have been 00000000-0000-0000-C000-000000000046 instead of %s\n",
uuid);
593 ok(!
strcmp((
char *)protseq,
"ncacn_np"),
"protseq should have been ncacn_np instead of %s\n", protseq);
594 ok(!
strcmp((
char *)network_addr,
"."),
"network_addr should have been . instead of %s\n", network_addr);
609 ok(!
strcmp((
char *)
uuid,
"00000000-0000-0000-c000-000000000046"),
"uuid should have been 00000000-0000-0000-C000-000000000046 instead of %s\n",
uuid);
610 ok(!
strcmp((
char *)protseq,
"ncacn_np"),
"protseq should have been ncacn_np instead of %s\n", protseq);
611 ok(!
strcmp((
char *)network_addr,
"."),
"network_addr should have been . instead of %s\n", network_addr);
626 ok(!
strcmp((
char *)protseq,
"ncacn_np"),
"protseq should have been ncacn_np instead of %s\n", protseq);
632 ok(protseq ==
NULL,
"protseq was %p instead of NULL\n", protseq);
647 ok(protseq ==
NULL,
"protseq was %p instead of NULL\n", protseq);
649 ok(network_addr ==
NULL,
"network_addr was %p instead of NULL\n", network_addr);
691 ok(!retval2,
"Unexpected return value %d.\n", retval2);
705 static unsigned char ncacn_np[] =
"ncacn_np";
706 static unsigned char address[] =
".";
707 static unsigned char endpoint[] =
"\\pipe\\wine_rpc_test";
723 ok(!
strcmp((
const char *)
binding,
"ncacn_np:.[\\\\pipe\\\\wine_rpc_test]"),
724 "binding string didn't match what was expected: \"%s\"\n",
binding);
742 static UUID v4and = { 0, 0, 0x4000, { 0x80,0,0,0,0,0,0,0 } };
743 static UUID v4or = { 0xffffffff, 0xffff, 0x4fff,
744 { 0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff } };
758 for (
i = 0;
i < 1000;
i++)
782 ok((
guid.Data4[0] & 0xc0) == 0x80,
783 "unexpected value in Data4[0]: %02x\n",
guid.Data4[0] & 0xc0);
795 if (!pUuidCreateSequential)
797 win_skip(
"UuidCreateSequential not exported\n");
801 ok(pI_UuidCreate != pUuidCreateSequential,
"got %p, %p\n", pI_UuidCreate, pUuidCreateSequential);
803 ret = pUuidCreateSequential(&guid1);
805 "expected RPC_S_OK or RPC_S_UUID_LOCAL_ONLY, got %08lx\n",
ret);
806 version = (guid1.Data3 & 0xf000) >> 12;
817 ok(!(guid1.Data4[2] & 0x01) ||
broken(guid1.Data4[2] & 0x01),
818 "GUID does not appear to contain a MAC address: %s\n",
826 ok((guid1.Data4[2] & 0x01),
827 "GUID does not appear to contain a multicast MAC address: %s\n",
833 ret = pUuidCreateSequential(&
guid2);
835 "expected RPC_S_OK or RPC_S_UUID_LOCAL_ONLY, got %08lx\n",
ret);
839 "unexpected value in MAC address: %s\n",
843 pI_UuidCreate(&
guid2);
847 "unexpected value in MAC address: %s\n",
859 "RpcBindingFree should have returned RPC_S_INVALID_BINDING instead of %ld\n",
864static void test_RpcStringFree(
void)
871 skip(
"Failed to allocate a string!\n");
877 ok(
string ==
NULL,
"String is %p expected NULL!\n",
string);
883 static const GUID guid = {0x12345678, 0xdead, 0xbeef, {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}};
894 memset(&server_interface, 0,
sizeof(server_interface));
895 memset(&client_interface, 0,
sizeof(client_interface));
918 memset(&if_id, 0,
sizeof(if_id));
923 ok(if_id.
VersMajor == 1,
"Test %u: Expected major version 1, got %hu.\n", test_idx,
925 ok(if_id.
VersMinor == 2,
"Test %u: Expected minor version 2, got %hu.\n", test_idx,
933 RPC_CSTR principal, saved_principal;
950 ok( principal == (
RPC_CSTR)0xdeadbeef,
"got unexpected principal\n" );
952 saved_principal = (
RPC_CSTR)0xdeadbeef;
955 ok( saved_principal != (
RPC_CSTR)0xdeadbeef,
"expected valid principal\n" );
956 ok( !
strcmp( (
const char *)saved_principal,
username ),
"got \'%s\'\n", saved_principal );
957 trace(
"%s\n", saved_principal);
965 ok( principal != (
RPC_CSTR)0xdeadbeef,
"expected valid principal\n" );
966 ok( !
strcmp( (
const char *)principal,
username ),
"got \'%s\'\n", principal );
989 ULONG binding_count_before;
990 ULONG binding_count_after1;
991 ULONG binding_count_after2;
992 ULONG endpoints_registered = 0;
993 static unsigned char iptcp[] =
"ncacn_ip_tcp";
994 static unsigned char np[] =
"ncacn_np";
995 static unsigned char ncalrpc[] =
"ncalrpc";
1000 binding_count_before = 0;
1003 binding_count_before = bindings->
Count;
1005 for (
i = 0;
i < bindings->
Count;
i++)
1010 if (
lstrlenA((
const char *)str_bind) > 12 && !
memcmp(str_bind,
"ncacn_ip_tcp", 12))
1011 iptcp_registered =
TRUE;
1012 if (
lstrlenA((
const char *)str_bind) > 8 && !
memcmp(str_bind,
"ncacn_np", 8))
1013 np_registered =
TRUE;
1014 if (
lstrlenA((
const char *)str_bind) > 7 && !
memcmp(str_bind,
"ncalrpc", 7))
1015 ncalrpc_registered =
TRUE;
1025 "RpcServerUseProtseqEp with NULL endpoint failed with status %ld\n",
1031 win_skip(
"ncacn_np not supported\n");
1034 if (
status ==
RPC_S_OK && !np_registered) endpoints_registered++;
1038 if (
status ==
RPC_S_OK && !iptcp_registered) endpoints_registered++;
1042 if (
status ==
RPC_S_OK && !ncalrpc_registered) endpoints_registered++;
1046 binding_count_after1 = bindings->
Count;
1047 ok(binding_count_after1 == binding_count_before + endpoints_registered,
1048 "wrong binding count - before: %lu, after %lu, endpoints registered %lu\n",
1049 binding_count_before, binding_count_after1, endpoints_registered);
1050 for (
i = 0;
i < bindings->
Count;
i++)
1055 trace(
"string binding: %s\n", str_bind);
1063 win_skip(
"ncacn_np not supported\n");
1075 binding_count_after2 = bindings->
Count;
1076 ok(binding_count_after2 == binding_count_after1,
1077 "bindings should have been re-used - after1: %lu after2: %lu\n",
1078 binding_count_after1, binding_count_after2);
1084 static unsigned char annotation[] =
"Test annotation string.";
1117 "%s: RpcEpResolveBinding failed with error %lu\n", protseq,
status);
1164 if (
hr !=
S_OK)
goto done;
1166 hr = INetFwMgr_get_LocalPolicy( mgr, &
policy );
1168 if (
hr !=
S_OK)
goto done;
1171 if (
hr !=
S_OK)
goto done;
1179 if (mgr) INetFwMgr_Release( mgr );
1181 return (
enabled == VARIANT_TRUE);
1210 if (
hr !=
S_OK)
goto done;
1212 hr = INetFwMgr_get_LocalPolicy( mgr, &
policy );
1214 if (
hr !=
S_OK)
goto done;
1217 if (
hr !=
S_OK)
goto done;
1219 hr = INetFwProfile_get_AuthorizedApplications(
profile, &apps );
1221 if (
hr !=
S_OK)
goto done;
1224 &IID_INetFwAuthorizedApplication, (
void **)&app );
1226 if (
hr !=
S_OK)
goto done;
1228 hr = INetFwAuthorizedApplication_put_ProcessImageFileName( app,
image );
1229 if (
hr !=
S_OK)
goto done;
1232 hr = INetFwAuthorizedApplication_put_Name( app,
name );
1235 if (
hr !=
S_OK)
goto done;
1238 hr = INetFwAuthorizedApplications_Add( apps, app );
1240 hr = INetFwAuthorizedApplications_Remove( apps,
image );
1245 if (app) INetFwAuthorizedApplication_Release( app );
1246 if (apps) INetFwAuthorizedApplications_Release( apps );
1249 if (mgr) INetFwMgr_Release( mgr );
1257 static unsigned char ncacn_np[] =
"ncacn_np";
1258 static unsigned char ncalrpc[] =
"ncalrpc";
1259 static unsigned char np_address[] =
".";
1273 skip(
"no privileges, skipping tests to avoid firewall dialog\n");
1281 test_RpcStringFree();
1287 if (firewall_enabled)
1292 skip(
"can't authorize app in firewall %08lx\n",
hr);
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
WINBASEAPI _Check_return_ _Out_ AppPolicyProcessTerminationMethod * policy
#define STATUS_ILLEGAL_INSTRUCTION
#define ERROR_INSUFFICIENT_BUFFER
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 ERROR_INVALID_PARAMETER
#define GetProcAddress(x, y)
#define GetCurrentProcess()
#define ERROR_INVALID_HANDLE
#define ERROR_ACCESS_DENIED
static const WCHAR version[]
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
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)
#define STATUS_ACCESS_VIOLATION
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLenum GLenum GLsizei const GLuint GLboolean enabled
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 token
#define EXCEPTION_EXECUTE_HANDLER
#define EXCEPTION_CONTINUE_SEARCH
int WINAPI lstrlenA(LPCSTR lpString)
static void test_UuidFromString(void)
static void test_rpc_ncacn_ip_tcp(void)
static void test_RpcIfInqId(void)
static void test_DceErrorInqTextA(void)
RPC_STATUS WINAPI TowerExplode(const twr_t *tower, RPC_SYNTAX_IDENTIFIER *object, RPC_SYNTAX_IDENTIFIER *syntax, char **protseq, char **endpoint, char **address)
static void test_RpcServerUseProtseq(void)
static void test_UuidCreateSequential(void)
static HRESULT set_firewall(enum firewall_op op)
static void test_endpoint_mapper(RPC_CSTR protseq, RPC_CSTR address)
static void test_RpcServerRegisterAuthInfo(void)
static void test_UuidEqual(void)
RPC_STATUS WINAPI TowerConstruct(const RPC_SYNTAX_IDENTIFIER *object, const RPC_SYNTAX_IDENTIFIER *syntax, const char *protseq, const char *endpoint, const char *address, twr_t **tower)
static const RPC_SERVER_INTERFACE IFoo___RpcServerInterface
static void test_towers(void)
static void test_RpcBindingFree(void)
static UUID Uuid_Table[10]
static const unsigned char tower_data_tcp_ip2[]
static void test_RpcStringBindingParseA(void)
static RPC_DISPATCH_FUNCTION IFoo_table[]
static void test_I_RpcMapWin32Status(void)
static BOOL is_process_elevated(void)
static const unsigned char tower_data_tcp_ip1[]
static BOOL Uuid_Comparison_Grid[11][11]
static RPC_IF_HANDLE IFoo_v0_0_s_ifspec
static BOOL is_firewall_enabled(void)
static RPC_DISPATCH_TABLE IFoo_v0_0_DispatchTable
static void test_UuidCreate(void)
static void test_RpcExceptionFilter(void)
static void test_RpcStringBindingFromBinding(void)
static void test_RpcServerInqDefaultPrincName(void)
static RPC_BINDING_HANDLE binding
#define RPC_NT_INVALID_NAF_ID
#define EPT_NT_INVALID_ENTRY
#define RPC_NT_SERVER_UNAVAILABLE
#define RPC_NT_UNSUPPORTED_TYPE
#define STATUS_WRONG_PASSWORD
#define RPC_NT_INTERFACE_NOT_FOUND
#define RPC_NT_INVALID_NETWORK_OPTIONS
#define RPC_NT_INVALID_RPC_PROTSEQ
#define RPC_NT_BAD_STUB_DATA
#define STATUS_INVALID_LOGON_HOURS
#define RPC_NT_INTERNAL_ERROR
#define RPC_NT_UNKNOWN_AUTHN_LEVEL
#define RPC_NT_SS_IN_NULL_CONTEXT
#define RPC_NT_ENUM_VALUE_OUT_OF_RANGE
#define RPC_NT_PIPE_CLOSED
#define STATUS_REG_NAT_CONSUMPTION
#define STATUS_POSSIBLE_DEADLOCK
#define RPC_NT_ENTRY_ALREADY_EXISTS
#define RPC_NT_DUPLICATE_ENDPOINT
#define RPC_NT_CALL_IN_PROGRESS
#define RPC_NT_NO_CALL_ACTIVE
#define RPC_NT_NO_ENDPOINT_FOUND
#define RPC_NT_STRING_TOO_LONG
#define STATUS_INSTRUCTION_MISALIGNMENT
#define RPC_NT_PROCNUM_OUT_OF_RANGE
#define STATUS_ACCOUNT_DISABLED
#define RPC_NT_PIPE_EMPTY
#define RPC_NT_NO_MORE_ENTRIES
#define STATUS_PASSWORD_MUST_CHANGE
#define RPC_NT_BYTE_COUNT_TOO_SMALL
#define RPC_NT_SS_CONTEXT_MISMATCH
#define RPC_NT_WRONG_KIND_OF_BINDING
#define RPC_NT_ALREADY_REGISTERED
#define EPT_NT_NOT_REGISTERED
#define RPC_NT_INVALID_ASYNC_HANDLE
#define RPC_NT_INVALID_NAME_SYNTAX
#define RPC_NT_NOTHING_TO_EXPORT
#define STATUS_STACK_OVERFLOW
#define RPC_NT_UNKNOWN_IF
#define RPC_NT_PROTOCOL_ERROR
#define RPC_NT_ENTRY_NOT_FOUND
#define RPC_NT_NO_PROTSEQS_REGISTERED
#define RPC_NT_NULL_REF_POINTER
#define RPC_NT_GROUP_MEMBER_NOT_FOUND
#define RPC_NT_SS_CHAR_TRANS_OPEN_FAIL
#define RPC_NT_UNSUPPORTED_TRANS_SYN
#define RPC_NT_INVALID_STRING_UUID
#define RPC_NT_NOT_LISTENING
#define RPC_NT_OBJECT_NOT_FOUND
#define STATUS_INSUFF_SERVER_RESOURCES
#define RPC_NT_INVALID_AUTH_IDENTITY
#define RPC_NT_INVALID_ASYNC_CALL
#define RPC_NT_SS_CHAR_TRANS_SHORT_FILE
#define RPC_NT_PROTSEQ_NOT_FOUND
#define RPC_NT_SS_CANNOT_GET_CALL_HANDLE
#define RPC_NT_NO_ENTRY_NAME
#define RPC_NT_CALL_CANCELLED
#define RPC_NT_TYPE_ALREADY_REGISTERED
#define RPC_NT_UUID_NO_ADDRESS
#define RPC_NT_OUT_OF_RESOURCES
#define STATUS_INVALID_SECURITY_DESCR
#define STATUS_PRIVILEGED_INSTRUCTION
#define STATUS_BREAKPOINT
#define RPC_NT_NO_CONTEXT_AVAILABLE
#define RPC_NT_PIPE_DISCIPLINE_ERROR
#define RPC_NT_MAX_CALLS_TOO_SMALL
#define RPC_NT_INVALID_STRING_BINDING
#define RPC_NT_NO_PROTSEQS
#define RPC_NT_SS_HANDLES_MISMATCH
#define STATUS_PASSWORD_EXPIRED
#define RPC_NT_NO_BINDINGS
#define RPC_NT_FP_DIV_ZERO
#define RPC_NT_FP_UNDERFLOW
#define RPC_NT_INCOMPLETE_NAME
#define STATUS_IN_PAGE_ERROR
#define RPC_NT_SS_CONTEXT_DAMAGED
#define RPC_NT_SERVER_TOO_BUSY
#define RPC_NT_FP_OVERFLOW
#define RPC_NT_UNKNOWN_AUTHN_SERVICE
#define RPC_NT_INVALID_TIMEOUT
#define RPC_NT_CANNOT_SUPPORT
#define RPC_NT_PROTSEQ_NOT_SUPPORTED
#define STATUS_HANDLE_NOT_CLOSABLE
#define RPC_NT_INVALID_NET_ADDR
#define STATUS_DATATYPE_MISALIGNMENT
#define RPC_NT_INVALID_BOUND
#define RPC_NT_NO_MORE_BINDINGS
#define RPC_NT_INVALID_OBJECT
#define RPC_NT_ZERO_DIVIDE
#define STATUS_GUARD_PAGE_VIOLATION
#define RPC_NT_UNKNOWN_AUTHZ_SERVICE
#define RPC_NT_BINDING_HAS_NO_AUTH
#define RPC_NT_INVALID_BINDING
#define RPC_NT_UNSUPPORTED_NAME_SYNTAX
#define RPC_NT_UNKNOWN_MGR_TYPE
#define RPC_NT_CANT_CREATE_ENDPOINT
#define STATUS_ACCOUNT_LOCKED_OUT
#define RPC_NT_NAME_SERVICE_UNAVAILABLE
#define EPT_NT_CANT_PERFORM_OP
#define RPC_NT_NOT_ALL_OBJS_UNEXPORTED
#define RPC_NT_NO_MORE_MEMBERS
#define RPC_NT_INVALID_ENDPOINT_FORMAT
#define RPC_NT_ALREADY_LISTENING
#define RPC_NT_UNKNOWN_AUTHN_TYPE
#define EPT_NT_CANT_CREATE
#define RPC_NT_ADDRESS_ERROR
#define RPC_NT_CALL_FAILED
#define RPC_NT_CALL_FAILED_DNE
#define RPC_NT_INVALID_TAG
#define RPC_NT_INVALID_VERS_OPTION
@ COINIT_APARTMENTTHREADED
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr)
RPC_STATUS WINAPI RpcStringBindingParseA(RPC_CSTR StringBinding, RPC_CSTR *ObjUuid, RPC_CSTR *Protseq, RPC_CSTR *NetworkAddr, RPC_CSTR *Endpoint, RPC_CSTR *Options)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE Binding, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc)
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 RpcBindingVectorFree(RPC_BINDING_VECTOR **BindingVector)
RPC_STATUS RPC_ENTRY RpcBindingReset(RPC_BINDING_HANDLE Binding)
RPC_STATUS WINAPI RpcBindingToStringBindingA(RPC_BINDING_HANDLE Binding, RPC_CSTR *StringBinding)
RPC_STATUS WINAPI RpcBindingFromStringBindingA(RPC_CSTR StringBinding, RPC_BINDING_HANDLE *Binding)
RPC_STATUS WINAPI RpcEpUnregister(RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector)
RPC_STATUS WINAPI RpcEpResolveBinding(RPC_BINDING_HANDLE Binding, RPC_IF_HANDLE IfSpec)
RPC_STATUS WINAPI RpcEpRegisterA(RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector, RPC_CSTR Annotation)
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 RPC_ENTRY RpcServerInqDefaultPrincNameA(ULONG AuthnSvc, RPC_CSTR *PrincName)
RPC_STATUS WINAPI RpcServerUseProtseqEpA(RPC_CSTR Protseq, UINT MaxCalls, RPC_CSTR Endpoint, LPVOID SecurityDescriptor)
RPC_STATUS WINAPI RpcServerInqBindings(RPC_BINDING_VECTOR **BindingVector)
RPC_STATUS WINAPI RpcServerRegisterAuthInfoW(RPC_WSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, LPVOID Arg)
RPC_STATUS WINAPI RpcServerUseProtseqA(RPC_CSTR Protseq, unsigned int MaxCalls, void *SecurityDescriptor)
RPC_STATUS WINAPI RpcServerRegisterAuthInfoA(RPC_CSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, LPVOID Arg)
RPC_STATUS WINAPI RpcServerUnregisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, UINT WaitForCallsToComplete)
RPC_STATUS WINAPI RpcMgmtStopServerListening(RPC_BINDING_HANDLE Binding)
RPC_STATUS WINAPI RpcNetworkIsProtseqValidA(RPC_CSTR protseq)
RPCRTAPI int RPC_ENTRY I_RpcExceptionFilter(ULONG)
#define RPC_C_AUTHN_DEFAULT
unsigned short * RPC_WSTR
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY
#define RPC_C_AUTHN_LEVEL_NONE
#define RPC_C_AUTHN_WINNT
void(__RPC_STUB * RPC_DISPATCH_FUNCTION)(PRPC_MESSAGE Message)
struct _RPC_SERVER_INTERFACE RPC_SERVER_INTERFACE
#define RPC_S_INVALID_ARG
LONG WINAPI I_RpcMapWin32Status(RPC_STATUS status)
int WINAPI RpcExceptionFilter(ULONG ExceptionCode)
RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, RPC_CSTR *StringUuid)
RPC_STATUS WINAPI UuidToStringW(UUID *Uuid, RPC_WSTR *StringUuid)
RPC_STATUS RPC_ENTRY DceErrorInqTextA(RPC_STATUS e, RPC_CSTR buffer)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
int WINAPI UuidEqual(UUID *Uuid1, UUID *Uuid2, RPC_STATUS *Status)
void WINAPI I_RpcFree(void *Object)
RPC_STATUS WINAPI UuidFromStringA(RPC_CSTR s, UUID *uuid)
RPC_STATUS WINAPI UuidCreate(UUID *Uuid)
const char int int int static __inline const char * wine_dbgstr_a(const char *s)
static __inline const char * wine_dbgstr_guid(const GUID *id)
#define STATUS_BUFFER_TOO_SMALL
BOOLEAN WINAPI GetUserNameExA(EXTENDED_NAME_FORMAT NameFormat, LPSTR lpNameBuffer, PULONG nSize)
RPC_BINDING_HANDLE BindingH[1]
RPC_SYNTAX_IDENTIFIER InterfaceId
RPC_SYNTAX_IDENTIFIER InterfaceId
RPC_VERSION SyntaxVersion
unsigned short MajorVersion
unsigned short MinorVersion
byte tower_octet_string[1]
#define STATUS_ACCESS_DENIED
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
#define FORMAT_MESSAGE_IGNORE_INSERTS
#define FORMAT_MESSAGE_FROM_SYSTEM
#define RPC_S_SERVER_TOO_BUSY
#define EPT_S_INVALID_ENTRY
#define RPC_S_PROTSEQ_NOT_SUPPORTED
#define RPC_S_TYPE_ALREADY_REGISTERED
#define RPC_S_NOTHING_TO_EXPORT
#define RPC_S_NO_MORE_MEMBERS
#define ERROR_INVALID_SECURITY_DESCR
#define RPC_S_CALL_IN_PROGRESS
#define RPC_S_OUT_OF_RESOURCES
#define RPC_S_CALL_FAILED_DNE
#define RPC_S_ADDRESS_ERROR
#define RPC_S_INVALID_NAME_SYNTAX
#define RPC_X_SS_HANDLES_MISMATCH
#define ERROR_INVALID_LOGON_HOURS
#define EPT_S_NOT_REGISTERED
#define RPC_S_UNSUPPORTED_TRANS_SYN
#define RPC_S_INVALID_BOUND
#define RPC_S_CALL_FAILED
#define RPC_S_WRONG_KIND_OF_BINDING
#define RPC_S_NO_CALL_ACTIVE
#define RPC_S_INVALID_STRING_BINDING
#define RPC_S_ENTRY_ALREADY_EXISTS
#define RPC_S_INVALID_TAG
#define RPC_S_INVALID_ASYNC_CALL
#define EPT_S_CANT_PERFORM_OP
#define RPC_S_NOT_ALL_OBJS_UNEXPORTED
#define RPC_X_ENUM_VALUE_OUT_OF_RANGE
#define RPC_S_ALREADY_LISTENING
#define RPC_X_SS_IN_NULL_CONTEXT
#define RPC_S_INVALID_AUTH_IDENTITY
#define RPC_S_FP_DIV_ZERO
#define RPC_X_PIPE_DISCIPLINE_ERROR
#define RPC_S_NAME_SERVICE_UNAVAILABLE
#define RPC_S_UNSUPPORTED_TYPE
#define RPC_X_BAD_STUB_DATA
#define RPC_S_BINDING_HAS_NO_AUTH
#define RPC_S_NO_MORE_BINDINGS
#define RPC_S_OBJECT_NOT_FOUND
#define RPC_S_CANT_CREATE_ENDPOINT
#define RPC_S_INVALID_STRING_UUID
#define RPC_S_CANNOT_SUPPORT
#define RPC_S_INVALID_ASYNC_HANDLE
#define RPC_X_SS_CHAR_TRANS_OPEN_FAIL
#define RPC_S_INVALID_NAF_ID
#define RPC_S_FP_UNDERFLOW
#define RPC_S_CALL_CANCELLED
#define RPC_X_NO_MORE_ENTRIES
#define RPC_S_PROTOCOL_ERROR
#define RPC_S_NO_BINDINGS
#define RPC_X_NULL_REF_POINTER
#define RPC_S_INVALID_TIMEOUT
#define RPC_X_PIPE_CLOSED
#define RPC_S_ZERO_DIVIDE
#define RPC_S_ENTRY_NOT_FOUND
#define RPC_S_NO_CONTEXT_AVAILABLE
#define RPC_S_UNKNOWN_AUTHN_TYPE
#define RPC_S_NO_ENDPOINT_FOUND
#define EPT_S_CANT_CREATE
#define RPC_S_GROUP_MEMBER_NOT_FOUND
#define ERROR_ACCOUNT_LOCKED_OUT
#define RPC_S_UNKNOWN_AUTHN_LEVEL
#define RPC_S_INVALID_VERS_OPTION
#define RPC_S_NOT_LISTENING
#define RPC_S_UNSUPPORTED_NAME_SYNTAX
#define ERROR_ACCOUNT_DISABLED
#define RPC_S_UNKNOWN_AUTHN_SERVICE
#define RPC_X_SS_CANNOT_GET_CALL_HANDLE
#define RPC_X_BYTE_COUNT_TOO_SMALL
#define ERROR_WRONG_PASSWORD
#define RPC_S_UUID_LOCAL_ONLY
#define ERROR_PASSWORD_MUST_CHANGE
#define RPC_S_INCOMPLETE_NAME
#define RPC_S_NO_PROTSEQS
#define RPC_S_PROTSEQ_NOT_FOUND
#define ERROR_MAX_THRDS_REACHED
#define RPC_S_STRING_TOO_LONG
#define RPC_S_INTERNAL_ERROR
#define RPC_S_SERVER_UNAVAILABLE
#define RPC_X_SS_CONTEXT_DAMAGED
#define RPC_S_INVALID_NETWORK_OPTIONS
#define ERROR_PASSWORD_EXPIRED
#define RPC_S_ALREADY_REGISTERED
#define RPC_S_INVALID_NET_ADDR
#define RPC_S_INTERFACE_NOT_FOUND
#define RPC_S_INVALID_ENDPOINT_FORMAT
#define RPC_S_INVALID_BINDING
#define RPC_S_INVALID_OBJECT
#define RPC_S_UUID_NO_ADDRESS
#define RPC_S_DUPLICATE_ENDPOINT
#define RPC_S_MAX_CALLS_TOO_SMALL
#define RPC_S_INVALID_RPC_PROTSEQ
#define RPC_S_NO_ENTRY_NAME
#define RPC_S_UNKNOWN_AUTHZ_SERVICE
#define RPC_S_NOT_RPC_ERROR
#define RPC_S_PROCNUM_OUT_OF_RANGE
#define RPC_X_SS_CHAR_TRANS_SHORT_FILE
#define RPC_S_FP_OVERFLOW
#define RPC_S_UNKNOWN_MGR_TYPE
#define RPC_S_NO_PROTSEQS_REGISTERED
#define ERROR_NOT_ENOUGH_SERVER_MEMORY
static void test_handles(void)
enum _TOKEN_ELEVATION_TYPE TOKEN_ELEVATION_TYPE