27 #define WIN32_NO_STATUS 54 { 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} },
55 { 0xdeadbeef, 0xdead, 0xbeef, {0x10, 0x21, 0x35, 0x56, 0x89, 0xa0, 0xf4, 0x8a} },
56 { 0xabadfeed, 0x49ff, 0xbead, {0x8a, 0xf4, 0xa0, 0x89, 0x56, 0x35, 0x21, 0x10} },
57 { 0x93da375c, 0x1324, 0x1355, {0x87, 0xff, 0x49, 0x44, 0x34, 0x44, 0x22, 0x19} },
58 { 0xdeadbeef, 0xdead, 0xbeef, {0x10, 0x21, 0x35, 0x56, 0x89, 0xa0, 0xf4, 0x8b} },
59 { 0x9badfeed, 0x49ff, 0xbead, {0x8a, 0xf4, 0xa0, 0x89, 0x56, 0x35, 0x21, 0x10} },
60 { 0x00000000, 0x0001, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} },
61 { 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01} },
62 { 0x12312312, 0x1231, 0x1231, {0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xff} },
63 { 0x11111111, 0x1111, 0x1111, {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11} }
68 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE },
69 {
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE },
70 {
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE },
71 {
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE },
72 {
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE },
73 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE },
74 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE },
75 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE },
76 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE },
77 {
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE },
78 {
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE }
87 UUID Uuid1, Uuid2, *PUuid1, *PUuid2;
93 for (i1 = 0; i1 < 11; i1++)
94 for (i2 = 0; i2 < 11; i2++) {
111 for (i1 = 0; i1 < 10; i1++) {
115 ok(
UuidEqual(&Uuid1, &Uuid2, &rslt),
"Uuid -> String -> Uuid transform\n" );
117 for (i2 = 0; i2 < 36; i2++) {
127 for (i1 = 0; i1 < 10; i1++) {
130 ok( (rslt ==
RPC_S_OK),
"Simple UUID->WString copy\n" );
132 ok(
UuidEqual(&Uuid1, &Uuid2, &rslt),
"Uuid -> WString -> Uuid transform\n" );
134 for (i2 = 0; i2 < 36; i2++) {
146 char bufferInvalid [1024];
158 "DceErrorInqTextA(0...)\n");
161 "DceErrorInqTextA(valid...)\n");
171 "DceErrorInqTextA(unformattable...)\n");
178 "DceErrorInqTextA(deviation...)\n");
181 ok (0,
"Cannot set up for DceErrorInqText\n");
198 {{0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x34}},{0,0}},
199 {{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},
213 unsigned char *binding, *principal;
217 static unsigned char foo[] =
"foo";
218 static unsigned char ncacn_ip_tcp[] =
"ncacn_ip_tcp";
219 static unsigned char address[] =
"127.0.0.1";
220 static unsigned char endpoint[] =
"4114";
221 static unsigned char spn[] =
"principal";
231 "wrong RpcMgmtStopServerListening error (%u)\n",
status);
235 "wrong RpcMgmtWaitServerListen error status (%u)\n",
status);
239 "wrong RpcServerListen error (%u)\n",
status);
252 "wrong RpcServerListen error (%u)\n",
status);
274 level = authnsvc = authzsvc = 0;
275 principal = (
unsigned char *)0xdeadbeef;
282 ok(principal != (
unsigned char *)0xdeadbeef,
"expected valid principal, got %p\n", principal);
313 0x05,0x00,0x13,0x00,0x0d,0x00,0xdb,0xf1,
314 0xa4,0x47,0xca,0x67,0x10,0xb3,0x1f,0x00,
315 0xdd,0x01,0x06,0x62,0xda,0x00,0x00,0x02,
316 0x00,0x00,0x00,0x13,0x00,0x0d,0x04,0x5d,
317 0x88,0x8a,0xeb,0x1c,0xc9,0x11,0x9f,0xe8,
318 0x08,0x00,0x2b,0x10,0x48,0x60,0x02,0x00,
319 0x02,0x00,0x00,0x00,0x01,0x00,0x0b,0x02,
320 0x00,0x00,0x00,0x01,0x00,0x07,0x02,0x00,
321 0x00,0x87,0x01,0x00,0x09,0x04,0x00,0x0a,
327 0x05,0x00,0x13,0x00,0x0d,0x00,0xdb,0xf1,
328 0xa4,0x47,0xca,0x67,0x10,0xb3,0x1f,0x00,
329 0xdd,0x01,0x06,0x62,0xda,0x00,0x00,0x02,
330 0x00,0x00,0x00,0x13,0x00,0x0d,0x04,0x5d,
331 0x88,0x8a,0xeb,0x1c,0xc9,0x11,0x9f,0xe8,
332 0x08,0x00,0x2b,0x10,0x48,0x60,0x02,0x00,
333 0x02,0x00,0x00,0x00,0x01,0x00,0x0b,0x00,
334 0x00,0x01,0x00,0x07,0x02,0x00,0x00,0x87,
335 0x01,0x00,0x09,0x04,0x00,0x0a,0x00,0x00,
343 static const RPC_SYNTAX_IDENTIFIER mapi_if_id = { { 0xa4f1db00, 0xca47, 0x1067, { 0xb3, 0x1f, 0x00, 0xdd, 0x01, 0x06, 0x62, 0xda } }, { 0, 0 } };
344 static const RPC_SYNTAX_IDENTIFIER ndr_syntax = { { 0x8a885d04, 0x1ceb, 0x11c9, { 0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60 } }, { 2, 0 } };
349 ret =
TowerConstruct(&mapi_if_id, &ndr_syntax,
"ncacn_ip_tcp",
"135",
"10.0.0.1", &tower);
352 "TowerConstruct failed with error %d\n",
ret);
356 win_skip(
"TowerConstruct failed, we are most likely on Windows Vista\n");
371 ok(same,
"Tower data differs\n");
386 ok(!
memcmp(&
object, &mapi_if_id,
sizeof(mapi_if_id)),
"object id didn't match\n");
387 ok(!
memcmp(&syntax, &ndr_syntax,
sizeof(syntax)),
"syntax id didn't match\n");
388 ok(!
strcmp(protseq,
"ncacn_ip_tcp"),
"protseq was \"%s\" instead of \"ncacn_ip_tcp\"\n", protseq);
402 ret =
TowerConstruct(&mapi_if_id, &ndr_syntax,
"ncacn_ip_tcp",
"135",
"localhost", &tower);
408 "address was \"%s\" instead of \"0.0.0.0\"\n",
address);
419 "TowerExplode failed with error %d\n",
ret);
441 for (rpc_status = 0; rpc_status < 10000; rpc_status++)
443 LONG expected_win32status;
560 expected_win32status = rpc_status;
563 ok(win32status == expected_win32status ||
564 broken(missing && win32status == rpc_status),
565 "I_RpcMapWin32Status(%d) should have returned 0x%x instead of 0x%x%s\n",
566 rpc_status, expected_win32status, win32status,
567 broken(missing) ?
" (or have returned with the given status)" :
"");
573 static unsigned char valid_binding[] =
"00000000-0000-0000-c000-000000000046@ncacn_np:.[endpoint=\\pipe\\test]";
574 static unsigned char valid_binding2[] =
"00000000-0000-0000-c000-000000000046@ncacn_np:.[\\pipe\\test]";
575 static unsigned char invalid_uuid_binding[] =
"{00000000-0000-0000-c000-000000000046}@ncacn_np:.[endpoint=\\pipe\\test]";
576 static unsigned char invalid_ep_binding[] =
"00000000-0000-0000-c000-000000000046@ncacn_np:.[endpoint=test]";
577 static unsigned char invalid_binding[] =
"00000000-0000-0000-c000-000000000046@ncacn_np";
580 unsigned char *protseq;
581 unsigned char *network_addr;
588 ok(!
strcmp((
char *)
uuid,
"00000000-0000-0000-c000-000000000046"),
"uuid should have been 00000000-0000-0000-C000-000000000046 instead of %s\n",
uuid);
589 ok(!
strcmp((
char *)protseq,
"ncacn_np"),
"protseq should have been ncacn_np instead of %s\n", protseq);
590 ok(!
strcmp((
char *)network_addr,
"."),
"network_addr should have been . instead of %s\n", network_addr);
605 ok(!
strcmp((
char *)
uuid,
"00000000-0000-0000-c000-000000000046"),
"uuid should have been 00000000-0000-0000-C000-000000000046 instead of %s\n",
uuid);
606 ok(!
strcmp((
char *)protseq,
"ncacn_np"),
"protseq should have been ncacn_np instead of %s\n", protseq);
607 ok(!
strcmp((
char *)network_addr,
"."),
"network_addr should have been . instead of %s\n", network_addr);
622 ok(!
strcmp((
char *)protseq,
"ncacn_np"),
"protseq should have been ncacn_np instead of %s\n", protseq);
628 ok(protseq ==
NULL,
"protseq was %p instead of NULL\n", protseq);
643 ok(protseq ==
NULL,
"protseq was %p instead of NULL\n", protseq);
645 ok(network_addr ==
NULL,
"network_addr was %p instead of NULL\n", network_addr);
658 if (!pRpcExceptionFilter)
699 static unsigned char ncacn_np[] =
"ncacn_np";
700 static unsigned char address[] =
".";
701 static unsigned char endpoint[] =
"\\pipe\\wine_rpc_test";
717 ok(!
strcmp((
const char *)binding,
"ncacn_np:.[\\\\pipe\\\\wine_rpc_test]"),
718 "binding string didn't match what was expected: \"%s\"\n", binding);
736 static UUID v4and = { 0, 0, 0x4000, { 0x80,0,0,0,0,0,0,0 } };
737 static UUID v4or = { 0xffffffff, 0xffff, 0x4fff,
738 { 0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff } };
752 for (
i = 0;
i < 1000;
i++)
776 ok((
guid.Data4[0] & 0xc0) == 0x80,
777 "unexpected value in Data4[0]: %02x\n",
guid.Data4[0] & 0xc0);
789 if (!pUuidCreateSequential)
791 win_skip(
"UuidCreateSequential not exported\n");
795 ok(pI_UuidCreate != pUuidCreateSequential,
"got %p, %p\n", pI_UuidCreate, pUuidCreateSequential);
797 ret = pUuidCreateSequential(&guid1);
799 "expected RPC_S_OK or RPC_S_UUID_LOCAL_ONLY, got %08x\n",
ret);
800 version = (guid1.Data3 & 0xf000) >> 12;
811 ok(!(guid1.Data4[2] & 0x01) ||
broken(guid1.Data4[2] & 0x01),
812 "GUID does not appear to contain a MAC address: %s\n",
820 ok((guid1.Data4[2] & 0x01),
821 "GUID does not appear to contain a multicast MAC address: %s\n",
827 ret = pUuidCreateSequential(&
guid2);
829 "expected RPC_S_OK or RPC_S_UUID_LOCAL_ONLY, got %08x\n",
ret);
833 "unexpected value in MAC address: %s\n",
837 pI_UuidCreate(&
guid2);
841 "unexpected value in MAC address: %s\n",
853 "RpcBindingFree should have returned RPC_S_INVALID_BINDING instead of %d\n",
860 RPC_CSTR principal, saved_principal;
877 ok( principal == (
RPC_CSTR)0xdeadbeef,
"got unexpected principal\n" );
879 saved_principal = (
RPC_CSTR)0xdeadbeef;
882 ok( saved_principal != (
RPC_CSTR)0xdeadbeef,
"expected valid principal\n" );
883 ok( !
strcmp( (
const char *)saved_principal,
username ),
"got \'%s\'\n", saved_principal );
884 trace(
"%s\n", saved_principal);
892 ok( principal != (
RPC_CSTR)0xdeadbeef,
"expected valid principal\n" );
893 ok( !
strcmp( (
const char *)principal,
username ),
"got \'%s\'\n", principal );
916 ULONG binding_count_before;
917 ULONG binding_count_after1;
918 ULONG binding_count_after2;
919 ULONG endpoints_registered = 0;
920 static unsigned char iptcp[] =
"ncacn_ip_tcp";
921 static unsigned char np[] =
"ncacn_np";
922 static unsigned char ncalrpc[] =
"ncalrpc";
927 binding_count_before = 0;
930 binding_count_before = bindings->
Count;
932 for (
i = 0;
i < bindings->
Count;
i++)
937 if (
lstrlenA((
const char *)str_bind) > 12 && !
memcmp(str_bind,
"ncacn_ip_tcp", 12))
938 iptcp_registered =
TRUE;
939 if (
lstrlenA((
const char *)str_bind) > 8 && !
memcmp(str_bind,
"ncacn_np", 8))
940 np_registered =
TRUE;
941 if (
lstrlenA((
const char *)str_bind) > 7 && !
memcmp(str_bind,
"ncalrpc", 7))
942 ncalrpc_registered =
TRUE;
952 "RpcServerUseProtseqEp with NULL endpoint failed with status %d\n",
958 win_skip(
"ncacn_np not supported\n");
965 if (
status ==
RPC_S_OK && !iptcp_registered) endpoints_registered++;
969 if (
status ==
RPC_S_OK && !ncalrpc_registered) endpoints_registered++;
973 binding_count_after1 = bindings->
Count;
974 ok(binding_count_after1 == binding_count_before + endpoints_registered,
975 "wrong binding count - before: %u, after %u, endpoints registered %u\n",
976 binding_count_before, binding_count_after1, endpoints_registered);
977 for (
i = 0;
i < bindings->
Count;
i++)
982 trace(
"string binding: %s\n", str_bind);
990 win_skip(
"ncacn_np not supported\n");
1002 binding_count_after2 = bindings->
Count;
1003 ok(binding_count_after2 == binding_count_after1,
1004 "bindings should have been re-used - after1: %u after2: %u\n",
1005 binding_count_after1, binding_count_after2);
1011 static unsigned char annotation[] =
"Test annotation string.";
1015 unsigned char *binding;
1044 "%s: RpcEpResolveBinding failed with error %u\n", protseq,
status);
1091 if (
hr !=
S_OK)
goto done;
1093 hr = INetFwMgr_get_LocalPolicy( mgr, &
policy );
1095 if (
hr !=
S_OK)
goto done;
1098 if (
hr !=
S_OK)
goto done;
1106 if (mgr) INetFwMgr_Release( mgr );
1108 return (
enabled == VARIANT_TRUE);
1119 static const WCHAR testW[] = {
'r',
'p',
'c',
'r',
't',
'4',
'_',
't',
'e',
's',
't',0};
1138 if (
hr !=
S_OK)
goto done;
1140 hr = INetFwMgr_get_LocalPolicy( mgr, &
policy );
1142 if (
hr !=
S_OK)
goto done;
1145 if (
hr !=
S_OK)
goto done;
1147 hr = INetFwProfile_get_AuthorizedApplications(
profile, &apps );
1149 if (
hr !=
S_OK)
goto done;
1152 &IID_INetFwAuthorizedApplication, (
void **)&app );
1154 if (
hr !=
S_OK)
goto done;
1156 hr = INetFwAuthorizedApplication_put_ProcessImageFileName( app,
image );
1157 if (
hr !=
S_OK)
goto done;
1160 hr = INetFwAuthorizedApplication_put_Name( app,
name );
1163 if (
hr !=
S_OK)
goto done;
1166 hr = INetFwAuthorizedApplications_Add( apps, app );
1168 hr = INetFwAuthorizedApplications_Remove( apps,
image );
1173 if (app) INetFwAuthorizedApplication_Release( app );
1174 if (apps) INetFwAuthorizedApplications_Release( apps );
1177 if (mgr) INetFwMgr_Release( mgr );
1185 static unsigned char ncacn_np[] =
"ncacn_np";
1186 static unsigned char ncalrpc[] =
"ncalrpc";
1187 static unsigned char np_address[] =
".";
1192 skip(
"no privileges, skipping tests to avoid firewall dialog\n");
1210 if (firewall_enabled)
1215 skip(
"can't authorize app in firewall %08x\n",
hr);
#define RPC_NT_NO_PROTSEQS_REGISTERED
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE Binding, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc)
#define ERROR_INVALID_PARAMETER
#define RPC_X_SS_IN_NULL_CONTEXT
#define STATUS_WRONG_PASSWORD
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
#define RPC_X_SS_CHAR_TRANS_OPEN_FAIL
#define RPC_S_ENTRY_ALREADY_EXISTS
#define RPC_C_AUTHN_WINNT
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
enum _TOKEN_ELEVATION_TYPE TOKEN_ELEVATION_TYPE
#define RPC_NT_DUPLICATE_ENDPOINT
#define RPC_NT_SS_CONTEXT_MISMATCH
#define RPC_S_UNSUPPORTED_TRANS_SYN
#define STATUS_INVALID_SECURITY_DESCR
#define RPC_S_PROCNUM_OUT_OF_RANGE
#define RPC_NT_INVALID_TIMEOUT
static void UuidConversionAndComparison(void)
#define STATUS_ILLEGAL_INSTRUCTION
#define RPC_NT_BAD_STUB_DATA
#define ERROR_ACCOUNT_DISABLED
RPC_STATUS WINAPI RpcMgmtStopServerListening(RPC_BINDING_HANDLE Binding)
#define RPC_S_INVALID_BOUND
#define RPC_NT_BYTE_COUNT_TOO_SMALL
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define RPC_S_NO_ENDPOINT_FOUND
#define RPC_X_NULL_REF_POINTER
#define RPC_NT_NO_CONTEXT_AVAILABLE
#define RPC_NT_INTERFACE_NOT_FOUND
#define RPC_NT_UNKNOWN_AUTHZ_SERVICE
#define RPC_X_SS_CONTEXT_DAMAGED
coclass MSXML2::XSLTemplate40 object
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
void WINAPI I_RpcFree(void *Object)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
#define RPC_NT_SS_CHAR_TRANS_OPEN_FAIL
#define RPC_NT_CANNOT_SUPPORT
#define RPC_X_SS_CHAR_TRANS_SHORT_FILE
#define RPC_S_NO_CONTEXT_AVAILABLE
#define STATUS_INVALID_PARAMETER
#define RPC_S_NOTHING_TO_EXPORT
#define RPC_S_NAME_SERVICE_UNAVAILABLE
#define RPC_NT_NO_PROTSEQS
#define RPC_S_INVALID_NET_ADDR
#define RPC_NT_ALREADY_LISTENING
RPC_STATUS WINAPI RpcStringBindingComposeA(RPC_CSTR ObjUuid, RPC_CSTR Protseq, RPC_CSTR NetworkAddr, RPC_CSTR Endpoint, RPC_CSTR Options, RPC_CSTR *StringBinding)
static const RPC_SERVER_INTERFACE IFoo___RpcServerInterface
void(__RPC_STUB * RPC_DISPATCH_FUNCTION)(PRPC_MESSAGE Message)
#define EPT_NT_CANT_CREATE
#define RPC_S_NO_BINDINGS
#define RPC_S_NO_PROTSEQS_REGISTERED
#define STATUS_REG_NAT_CONSUMPTION
#define RPC_NT_INVALID_TAG
#define RPC_S_WRONG_KIND_OF_BINDING
#define ERROR_INVALID_HANDLE
#define RPC_NT_NO_MORE_MEMBERS
#define RPC_NT_UNKNOWN_AUTHN_LEVEL
#define RPC_S_INVALID_ASYNC_CALL
static UUID Uuid_Table[10]
#define RPC_X_BYTE_COUNT_TOO_SMALL
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)
#define STATUS_GUARD_PAGE_VIOLATION
#define RPC_NT_INVALID_RPC_PROTSEQ
#define RPC_NT_SERVER_TOO_BUSY
#define STATUS_INSUFF_SERVER_RESOURCES
static void test_RpcServerUseProtseq(void)
#define RPC_NT_NO_CALL_ACTIVE
const char * wine_dbgstr_guid(const GUID *guid)
#define RPC_S_SERVER_UNAVAILABLE
#define RPC_NT_UNKNOWN_AUTHN_TYPE
GLint GLint GLint GLint GLint x
BOOLEAN WINAPI GetUserNameExA(EXTENDED_NAME_FORMAT NameFormat, LPSTR lpNameBuffer, PULONG nSize)
#define RPC_NT_ENUM_VALUE_OUT_OF_RANGE
#define RPC_X_PIPE_CLOSED
#define RPC_S_NO_MORE_BINDINGS
#define RPC_NT_GROUP_MEMBER_NOT_FOUND
static HRESULT set_firewall(enum firewall_op op)
RPC_STATUS WINAPI RpcStringBindingParseA(RPC_CSTR StringBinding, RPC_CSTR *ObjUuid, RPC_CSTR *Protseq, RPC_CSTR *NetworkAddr, RPC_CSTR *Endpoint, RPC_CSTR *Options)
int WINAPI UuidEqual(UUID *Uuid1, UUID *Uuid2, RPC_STATUS *Status)
#define STATUS_ACCOUNT_LOCKED_OUT
#define RPC_C_AUTHN_DEFAULT
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
#define RPC_NT_INVALID_BOUND
GLenum GLenum GLsizei const GLuint GLboolean enabled
RPC_STATUS WINAPI RpcServerUnregisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, UINT WaitForCallsToComplete)
RPC_STATUS RPC_ENTRY RpcBindingReset(RPC_BINDING_HANDLE Binding)
static void test_UuidCreate(void)
#define RPC_NT_INVALID_NAME_SYNTAX
#define RPC_NT_INVALID_VERS_OPTION
#define RPC_S_INVALID_ENDPOINT_FORMAT
static BOOL Uuid_Comparison_Grid[11][11]
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_INVALID_LOGON_HOURS
#define EPT_NT_CANT_PERFORM_OP
WDF_INTERRUPT_POLICY policy
#define ERROR_WRONG_PASSWORD
RPC_STATUS WINAPI RpcServerRegisterAuthInfoW(RPC_WSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, LPVOID Arg)
#define ERROR_MAX_THRDS_REACHED
#define RPC_S_UNKNOWN_AUTHN_LEVEL
RPC_STATUS WINAPI RpcServerUseProtseqA(RPC_CSTR Protseq, unsigned int MaxCalls, void *SecurityDescriptor)
#define EXCEPTION_CONTINUE_SEARCH
RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, RPC_CSTR *StringUuid)
static void test_RpcExceptionFilter(const char *func_name)
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
#define RPC_S_INVALID_OBJECT
#define RPC_S_ZERO_DIVIDE
#define ERROR_ACCESS_DENIED
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
#define RPC_NT_INVALID_NAF_ID
#define RPC_NT_ZERO_DIVIDE
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
RPC_STATUS WINAPI RpcServerListen(UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait)
#define RPC_NT_INVALID_STRING_UUID
#define ERROR_NOT_ENOUGH_SERVER_MEMORY
#define RPC_NT_INVALID_ASYNC_CALL
#define RPC_NT_INTERNAL_ERROR
#define EXCEPTION_EXECUTE_HANDLER
#define RPC_S_INVALID_TAG
#define RPC_S_FP_UNDERFLOW
#define RPC_NT_CANT_CREATE_ENDPOINT
#define RPC_S_CALL_FAILED_DNE
#define ERROR_PASSWORD_MUST_CHANGE
#define RPC_S_INVALID_BINDING
static const WCHAR version[]
#define RPC_NT_INCOMPLETE_NAME
static void TestDceErrorInqText(void)
#define STATUS_BREAKPOINT
#define RPC_NT_CALL_CANCELLED
#define RPC_S_NO_ENTRY_NAME
#define RPC_S_INVALID_TIMEOUT
BSTR WINAPI SysAllocString(LPCOLESTR str)
#define RPC_S_CANNOT_SUPPORT
#define RPC_NT_PROCNUM_OUT_OF_RANGE
#define RPC_NT_UNSUPPORTED_TRANS_SYN
#define RPC_S_INVALID_VERS_OPTION
#define RPC_NT_UNKNOWN_IF
static RPC_IF_HANDLE IFoo_v0_0_s_ifspec
#define FORMAT_MESSAGE_FROM_SYSTEM
#define RPC_NT_INVALID_OBJECT
static void test_endpoint_mapper(RPC_CSTR protseq, RPC_CSTR address)
#define RPC_S_FP_OVERFLOW
byte tower_octet_string[1]
#define RPC_S_NOT_LISTENING
#define RPC_NT_ENTRY_ALREADY_EXISTS
#define RPC_S_PROTOCOL_ERROR
static RPC_DISPATCH_TABLE IFoo_v0_0_DispatchTable
#define RPC_S_INTERFACE_NOT_FOUND
#define RPC_S_INCOMPLETE_NAME
RPC_STATUS WINAPI TowerExplode(const twr_t *tower, RPC_SYNTAX_IDENTIFIER *object, RPC_SYNTAX_IDENTIFIER *syntax, char **protseq, char **endpoint, char **address)
#define STATUS_ACCOUNT_DISABLED
RPC_STATUS WINAPI RpcBindingToStringBindingA(RPC_BINDING_HANDLE Binding, RPC_CSTR *StringBinding)
#define RPC_S_PROTSEQ_NOT_SUPPORTED
#define RPC_S_CALL_IN_PROGRESS
#define RPC_S_DUPLICATE_ENDPOINT
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY
#define RPC_NT_ALREADY_REGISTERED
#define RPC_S_UNSUPPORTED_TYPE
#define RPC_S_INVALID_NETWORK_OPTIONS
RPC_STATUS WINAPI RpcServerInqBindings(RPC_BINDING_VECTOR **BindingVector)
static void test_UuidCreateSequential(void)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define RPC_NT_SS_CANNOT_GET_CALL_HANDLE
RPC_STATUS WINAPI RpcBindingFromStringBindingA(RPC_CSTR StringBinding, RPC_BINDING_HANDLE *Binding)
#define RPC_S_NO_PROTSEQS
#define RPC_S_GROUP_MEMBER_NOT_FOUND
#define RPC_NT_UNKNOWN_MGR_TYPE
#define EPT_S_INVALID_ENTRY
#define STATUS_PASSWORD_EXPIRED
#define RPC_NT_INVALID_NET_ADDR
RPC_STATUS WINAPI RpcServerUseProtseqEpA(RPC_CSTR Protseq, UINT MaxCalls, RPC_CSTR Endpoint, LPVOID SecurityDescriptor)
#define RPC_S_NOT_RPC_ERROR
#define RPC_NT_SS_IN_NULL_CONTEXT
#define RPC_S_UNKNOWN_MGR_TYPE
#define RPC_NT_PIPE_EMPTY
RPC_BINDING_HANDLE BindingH[1]
RPC_STATUS WINAPI RpcBindingVectorFree(RPC_BINDING_VECTOR **BindingVector)
static const struct d3drm_matrix identity
#define RPC_S_OBJECT_NOT_FOUND
#define RPC_NT_STRING_TOO_LONG
static void test_rpc_ncacn_ip_tcp(void)
#define RPC_S_NO_MORE_MEMBERS
RPC_STATUS WINAPI RpcServerRegisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv)
struct _RPC_SERVER_INTERFACE RPC_SERVER_INTERFACE
#define RPC_NT_NO_ENDPOINT_FOUND
#define STATUS_ACCESS_DENIED
#define RPC_NT_FP_UNDERFLOW
#define RPC_S_TYPE_ALREADY_REGISTERED
RPC_STATUS WINAPI RpcEpRegisterA(RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector, RPC_CSTR Annotation)
#define RPC_NT_FP_OVERFLOW
RPC_STATUS WINAPI UuidToStringW(UUID *Uuid, RPC_WSTR *StringUuid)
#define RPC_S_INVALID_STRING_UUID
#define RPC_S_CALL_CANCELLED
#define STATUS_UNSUCCESSFUL
static BOOL is_process_elevated(void)
#define RPC_NT_FP_DIV_ZERO
#define RPC_NT_INVALID_STRING_BINDING
#define RPC_NT_ENTRY_NOT_FOUND
static const unsigned char tower_data_tcp_ip1[]
#define RPC_X_ENUM_VALUE_OUT_OF_RANGE
#define RPC_NT_NOT_ALL_OBJS_UNEXPORTED
#define RPC_S_MAX_CALLS_TOO_SMALL
#define RPC_NT_INVALID_BINDING
#define RPC_NT_MAX_CALLS_TOO_SMALL
#define RPC_S_UNSUPPORTED_NAME_SYNTAX
#define RPC_S_UUID_NO_ADDRESS
#define RPC_NT_INVALID_NETWORK_OPTIONS
#define RPC_S_UNKNOWN_AUTHN_SERVICE
#define ERROR_INVALID_SECURITY_DESCR
#define RPC_NT_OBJECT_NOT_FOUND
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
#define RPC_S_ADDRESS_ERROR
#define GetCurrentProcess()
#define STATUS_HANDLE_NOT_CLOSABLE
#define STATUS_PRIVILEGED_INSTRUCTION
#define RPC_NT_NO_MORE_ENTRIES
static void test_RpcServerRegisterAuthInfo(void)
static RPC_DISPATCH_FUNCTION IFoo_table[]
#define RPC_S_NO_CALL_ACTIVE
#define RPC_NT_UNSUPPORTED_NAME_SYNTAX
#define RPC_S_INTERNAL_ERROR
static void test_towers(void)
#define RPC_NT_TYPE_ALREADY_REGISTERED
static const unsigned char tower_data_tcp_ip2[]
#define ERROR_INVALID_LOGON_HOURS
#define STATUS_POSSIBLE_DEADLOCK
RPC_STATUS WINAPI RpcEpUnregister(RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector)
#define RPC_X_SS_CANNOT_GET_CALL_HANDLE
#define RPC_S_ALREADY_LISTENING
#define RPC_S_INVALID_RPC_PROTSEQ
#define RPC_S_SERVER_TOO_BUSY
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
#define RPC_S_INVALID_NAME_SYNTAX
static void test_RpcServerInqDefaultPrincName(void)
#define RPC_NT_SS_CONTEXT_DAMAGED
#define RPC_NT_PROTOCOL_ERROR
#define RPC_S_BINDING_HAS_NO_AUTH
#define FORMAT_MESSAGE_IGNORE_INSERTS
#define RPC_NT_SS_HANDLES_MISMATCH
#define RPC_NT_CALL_IN_PROGRESS
static void test_RpcStringBindingFromBinding(void)
#define ERROR_PASSWORD_EXPIRED
#define RPC_NT_UNKNOWN_AUTHN_SERVICE
#define STATUS_INSTRUCTION_MISALIGNMENT
int WINAPI lstrlenA(LPCSTR lpString)
RPC_STATUS WINAPI UuidCreate(UUID *Uuid)
static void test_RpcBindingFree(void)
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
#define RPC_NT_CALL_FAILED_DNE
#define STATUS_ACCESS_VIOLATION
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
#define STATUS_PASSWORD_MUST_CHANGE
static BOOL is_firewall_enabled(void)
#define RPC_NT_INVALID_AUTH_IDENTITY
static void test_RpcStringBindingParseA(void)
#define RPC_X_SS_HANDLES_MISMATCH
#define RPC_NT_PIPE_DISCIPLINE_ERROR
#define RPC_NT_NO_ENTRY_NAME
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
#define RPC_NT_INVALID_ENDPOINT_FORMAT
#define RPC_NT_PIPE_CLOSED
#define RPC_S_OUT_OF_RESOURCES
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define EPT_S_NOT_REGISTERED
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
#define STATUS_STACK_OVERFLOW
#define RPC_S_INVALID_NAF_ID
RPC_STATUS WINAPI RpcEpResolveBinding(RPC_BINDING_HANDLE Binding, RPC_IF_HANDLE IfSpec)
#define RPC_NT_INVALID_ASYNC_HANDLE
#define RPC_S_ENTRY_NOT_FOUND
#define RPC_X_NO_MORE_ENTRIES
#define EPT_S_CANT_CREATE
#define STATUS_DATATYPE_MISALIGNMENT
#define RPC_NT_NAME_SERVICE_UNAVAILABLE
#define RPC_S_UNKNOWN_AUTHZ_SERVICE
#define EPT_NT_NOT_REGISTERED
#define RPC_X_BAD_STUB_DATA
#define RPC_NT_NOTHING_TO_EXPORT
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
#define RPC_NT_BINDING_HAS_NO_AUTH
int strcmp(const char *String1, const char *String2)
RPC_STATUS WINAPI RpcMgmtWaitServerListen(void)
#define GetProcAddress(x, y)
#define EPT_S_CANT_PERFORM_OP
#define STATUS_IN_PAGE_ERROR
GLuint GLuint GLsizei GLenum type
#define RPC_S_INVALID_AUTH_IDENTITY
static void test_I_RpcMapWin32Status(void)
RPC_STATUS WINAPI UuidFromStringA(RPC_CSTR s, UUID *uuid)
#define RPC_NT_UNSUPPORTED_TYPE
RPC_STATUS RPC_ENTRY DceErrorInqTextA(RPC_STATUS e, RPC_CSTR buffer)
#define RPC_S_CALL_FAILED
#define RPC_NT_NULL_REF_POINTER
#define RPC_NT_OUT_OF_RESOURCES
#define ERROR_ACCOUNT_LOCKED_OUT
#define RPC_NT_CALL_FAILED
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr)
#define RPC_S_INVALID_STRING_BINDING
#define RPC_S_NOT_ALL_OBJS_UNEXPORTED
static SERVICE_STATUS status
RPC_STATUS WINAPI RpcServerRegisterAuthInfoA(RPC_CSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, LPVOID Arg)
#define EPT_NT_INVALID_ENTRY
#define RPC_C_AUTHN_LEVEL_NONE
#define RPC_NT_WRONG_KIND_OF_BINDING
#define HeapFree(x, y, z)
#define RPC_S_PROTSEQ_NOT_FOUND
RPC_STATUS WINAPI RpcNetworkIsProtseqValidA(RPC_CSTR protseq)
#define RPC_S_UUID_LOCAL_ONLY
#define RPC_S_INVALID_ASYNC_HANDLE
RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameA(ULONG AuthnSvc, RPC_CSTR *PrincName)
static const WCHAR testW[]
#define RPC_S_UNKNOWN_AUTHN_TYPE
#define RPC_S_ALREADY_REGISTERED
#define RPC_NT_NO_MORE_BINDINGS
#define RPC_NT_SERVER_UNAVAILABLE
#define RPC_NT_NO_BINDINGS
#define RPC_S_CANT_CREATE_ENDPOINT
#define RPC_NT_SS_CHAR_TRANS_SHORT_FILE
#define RPC_NT_UUID_NO_ADDRESS
#define RPC_S_STRING_TOO_LONG
#define RPC_NT_NOT_LISTENING
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
#define RPC_NT_PROTSEQ_NOT_FOUND
#define RPC_NT_PROTSEQ_NOT_SUPPORTED
#define ERROR_INSUFFICIENT_BUFFER
#define RPC_X_PIPE_DISCIPLINE_ERROR
#define RPC_NT_ADDRESS_ERROR
#define RPC_S_FP_DIV_ZERO
LONG WINAPI I_RpcMapWin32Status(RPC_STATUS status)
GLuint const GLchar * name