Artifact 7597e66a5d41bac60a2bc46990c07fab30d41d2e:
- File
src/win32/rpcdce2.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 20 72 70 63 64 63 rpcdc 0070: 65 32 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 e2.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla 0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W 01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..* 01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..* 0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0220: 20 20 20 20 20 50 6c 61 63 65 64 20 69 6e 74 6f Placed into 0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20 public domain 0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0250: 20 20 20 20 20 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a *..\******* 0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e /..module win32. 02b0: 72 70 63 64 63 65 32 3b 0d 0a 0d 0a 69 6d 70 6f rpcdce2;....impo 02c0: 72 74 20 77 69 6e 33 32 2e 72 70 63 64 63 65 3b rt win32.rpcdce; 02d0: 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 ..private import 02e0: 20 77 69 6e 33 32 2e 62 61 73 65 74 79 70 73 3b win32.basetyps; 02f0: 0d 0a 0d 0a 2f 2f 20 46 49 58 4d 45 3a 20 64 65 ....// FIXME: de 0300: 61 6c 20 77 69 74 68 20 52 50 43 5f 55 4e 49 43 al with RPC_UNIC 0310: 4f 44 45 5f 53 55 50 50 4f 52 54 45 44 0d 0a 2f ODE_SUPPORTED../ 0320: 2f 20 46 49 58 4d 45 3a 20 63 68 65 63 6b 20 74 / FIXME: check t 0330: 79 70 65 73 20 6f 66 20 63 6f 6e 73 74 61 6e 74 ypes of constant 0340: 73 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 52 50 s....enum {...RP 0350: 43 5f 43 5f 45 50 5f 41 4c 4c 5f 45 4c 54 53 2c C_C_EP_ALL_ELTS, 0360: 0d 0a 09 52 50 43 5f 43 5f 45 50 5f 4d 41 54 43 ...RPC_C_EP_MATC 0370: 48 5f 42 59 5f 49 46 2c 0d 0a 09 52 50 43 5f 43 H_BY_IF,...RPC_C 0380: 5f 45 50 5f 4d 41 54 43 48 5f 42 59 5f 4f 42 4a _EP_MATCH_BY_OBJ 0390: 2c 0d 0a 09 52 50 43 5f 43 5f 45 50 5f 4d 41 54 ,...RPC_C_EP_MAT 03a0: 43 48 5f 42 59 5f 42 4f 54 48 0d 0a 7d 0d 0a 0d CH_BY_BOTH..}... 03b0: 0a 65 6e 75 6d 20 7b 0d 0a 09 52 50 43 5f 43 5f .enum {...RPC_C_ 03c0: 56 45 52 53 5f 41 4c 4c 20 3d 20 31 2c 0d 0a 09 VERS_ALL = 1,... 03d0: 52 50 43 5f 43 5f 56 45 52 53 5f 43 4f 4d 50 41 RPC_C_VERS_COMPA 03e0: 54 49 42 4c 45 2c 0d 0a 09 52 50 43 5f 43 5f 56 TIBLE,...RPC_C_V 03f0: 45 52 53 5f 45 58 41 43 54 2c 0d 0a 09 52 50 43 ERS_EXACT,...RPC 0400: 5f 43 5f 56 45 52 53 5f 4d 41 4a 4f 52 5f 4f 4e _C_VERS_MAJOR_ON 0410: 4c 59 2c 0d 0a 09 52 50 43 5f 43 5f 56 45 52 53 LY,...RPC_C_VERS 0420: 5f 55 50 54 4f 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 _UPTO..}....cons 0430: 74 20 73 69 7a 65 5f 74 20 44 43 45 5f 43 5f 45 t size_t DCE_C_E 0440: 52 52 4f 52 5f 53 54 52 49 4e 47 5f 4c 45 4e 20 RROR_STRING_LEN 0450: 3d 20 32 35 36 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b = 256;....enum { 0460: 0d 0a 09 52 50 43 5f 43 5f 4d 47 4d 54 5f 49 4e ...RPC_C_MGMT_IN 0470: 51 5f 49 46 5f 49 44 53 2c 0d 0a 09 52 50 43 5f Q_IF_IDS,...RPC_ 0480: 43 5f 4d 47 4d 54 5f 49 4e 51 5f 50 52 49 4e 43 C_MGMT_INQ_PRINC 0490: 5f 4e 41 4d 45 2c 0d 0a 09 52 50 43 5f 43 5f 4d _NAME,...RPC_C_M 04a0: 47 4d 54 5f 49 4e 51 5f 53 54 41 54 53 2c 0d 0a GMT_INQ_STATS,.. 04b0: 09 52 50 43 5f 43 5f 4d 47 4d 54 5f 49 53 5f 53 .RPC_C_MGMT_IS_S 04c0: 45 52 56 45 52 5f 4c 49 53 54 45 4e 2c 0d 0a 09 ERVER_LISTEN,... 04d0: 52 50 43 5f 43 5f 4d 47 4d 54 5f 53 54 4f 50 5f RPC_C_MGMT_STOP_ 04e0: 53 45 52 56 45 52 5f 4c 49 53 54 45 4e 0d 0a 7d SERVER_LISTEN..} 04f0: 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 ....extern (Wind 0500: 6f 77 73 29 20 7b 0d 0a 09 69 6e 74 20 55 75 69 ows) {...int Uui 0510: 64 43 6f 6d 70 61 72 65 28 55 55 49 44 2a 2c 20 dCompare(UUID*, 0520: 55 55 49 44 2a 2c 20 52 50 43 5f 53 54 41 54 55 UUID*, RPC_STATU 0530: 53 2a 29 3b 0d 0a 09 52 50 43 5f 53 54 41 54 55 S*);...RPC_STATU 0540: 53 20 55 75 69 64 43 72 65 61 74 65 4e 69 6c 28 S UuidCreateNil( 0550: 55 55 49 44 2a 29 3b 0d 0a 09 69 6e 74 20 55 75 UUID*);...int Uu 0560: 69 64 45 71 75 61 6c 28 55 55 49 44 2a 2c 20 55 idEqual(UUID*, U 0570: 55 49 44 2a 2c 20 52 50 43 5f 53 54 41 54 55 53 UID*, RPC_STATUS 0580: 2a 29 3b 0d 0a 09 75 73 68 6f 72 74 20 55 75 69 *);...ushort Uui 0590: 64 48 61 73 68 28 55 55 49 44 2a 2c 20 52 50 43 dHash(UUID*, RPC 05a0: 5f 53 54 41 54 55 53 2a 29 3b 0d 0a 09 69 6e 74 _STATUS*);...int 05b0: 20 55 75 69 64 49 73 4e 69 6c 28 55 55 49 44 2a UuidIsNil(UUID* 05c0: 2c 20 52 50 43 5f 53 54 41 54 55 53 2a 29 3b 0d , RPC_STATUS*);. 05d0: 0a 0d 0a 09 52 50 43 5f 53 54 41 54 55 53 20 52 ....RPC_STATUS R 05e0: 70 63 4d 67 6d 74 45 70 45 6c 74 49 6e 71 42 65 pcMgmtEpEltInqBe 05f0: 67 69 6e 28 52 50 43 5f 42 49 4e 44 49 4e 47 5f gin(RPC_BINDING_ 0600: 48 41 4e 44 4c 45 2c 20 75 69 6e 74 2c 20 52 50 HANDLE, uint, RP 0610: 43 5f 49 46 5f 49 44 2a 2c 0d 0a 09 20 20 75 69 C_IF_ID*,... ui 0620: 6e 74 2c 20 55 55 49 44 2a 2c 20 52 50 43 5f 45 nt, UUID*, RPC_E 0630: 50 5f 49 4e 51 5f 48 41 4e 44 4c 45 2a 29 3b 0d P_INQ_HANDLE*);. 0640: 0a 09 52 50 43 5f 53 54 41 54 55 53 20 52 70 63 ..RPC_STATUS Rpc 0650: 4d 67 6d 74 45 70 45 6c 74 49 6e 71 44 6f 6e 65 MgmtEpEltInqDone 0660: 28 52 50 43 5f 45 50 5f 49 4e 51 5f 48 41 4e 44 (RPC_EP_INQ_HAND 0670: 4c 45 2a 29 3b 0d 0a 09 52 50 43 5f 53 54 41 54 LE*);...RPC_STAT 0680: 55 53 20 52 70 63 4d 67 6d 74 45 70 55 6e 72 65 US RpcMgmtEpUnre 0690: 67 69 73 74 65 72 28 52 50 43 5f 42 49 4e 44 49 gister(RPC_BINDI 06a0: 4e 47 5f 48 41 4e 44 4c 45 2c 20 52 50 43 5f 49 NG_HANDLE, RPC_I 06b0: 46 5f 49 44 2a 2c 0d 0a 09 20 20 52 50 43 5f 42 F_ID*,... RPC_B 06c0: 49 4e 44 49 4e 47 5f 48 41 4e 44 4c 45 2c 20 55 INDING_HANDLE, U 06d0: 55 49 44 2a 29 3b 0d 0a 09 52 50 43 5f 53 54 41 UID*);...RPC_STA 06e0: 54 55 53 20 52 70 63 4d 67 6d 74 53 65 74 41 75 TUS RpcMgmtSetAu 06f0: 74 68 6f 72 69 7a 61 74 69 6f 6e 46 6e 28 52 50 thorizationFn(RP 0700: 43 5f 4d 47 4d 54 5f 41 55 54 48 4f 52 49 5a 41 C_MGMT_AUTHORIZA 0710: 54 49 4f 4e 5f 46 4e 29 3b 0d 0a 7d 0d 0a 0d 0a TION_FN);..}.... 0720: 0d 0a 2f 2f 23 69 66 64 65 66 20 52 50 43 5f 55 ..//#ifdef RPC_U 0730: 4e 49 43 4f 44 45 5f 53 55 50 50 4f 52 54 45 44 NICODE_SUPPORTED 0740: 0d 0a 52 50 43 5f 53 54 41 54 55 53 20 44 63 65 ..RPC_STATUS Dce 0750: 45 72 72 6f 72 49 6e 71 54 65 78 74 41 28 52 50 ErrorInqTextA(RP 0760: 43 5f 53 54 41 54 55 53 2c 20 63 68 61 72 2a 29 C_STATUS, char*) 0770: 3b 0d 0a 52 50 43 5f 53 54 41 54 55 53 20 44 63 ;..RPC_STATUS Dc 0780: 65 45 72 72 6f 72 49 6e 71 54 65 78 74 57 28 52 eErrorInqTextW(R 0790: 50 43 5f 53 54 41 54 55 53 2c 20 77 63 68 61 72 PC_STATUS, wchar 07a0: 2a 29 3b 0d 0a 52 50 43 5f 53 54 41 54 55 53 20 *);..RPC_STATUS 07b0: 52 70 63 4d 67 6d 74 45 70 45 6c 74 49 6e 71 4e RpcMgmtEpEltInqN 07c0: 65 78 74 41 28 52 50 43 5f 45 50 5f 49 4e 51 5f extA(RPC_EP_INQ_ 07d0: 48 41 4e 44 4c 45 2c 20 52 50 43 5f 49 46 5f 49 HANDLE, RPC_IF_I 07e0: 44 2a 2c 0d 0a 20 20 52 50 43 5f 42 49 4e 44 49 D*,.. RPC_BINDI 07f0: 4e 47 5f 48 41 4e 44 4c 45 2a 2c 20 55 55 49 44 NG_HANDLE*, UUID 0800: 2a 2c 20 63 68 61 72 2a 2a 29 3b 0d 0a 52 50 43 *, char**);..RPC 0810: 5f 53 54 41 54 55 53 20 52 70 63 4d 67 6d 74 45 _STATUS RpcMgmtE 0820: 70 45 6c 74 49 6e 71 4e 65 78 74 57 28 52 50 43 pEltInqNextW(RPC 0830: 5f 45 50 5f 49 4e 51 5f 48 41 4e 44 4c 45 2c 20 _EP_INQ_HANDLE, 0840: 52 50 43 5f 49 46 5f 49 44 2a 2c 0d 0a 20 20 52 RPC_IF_ID*,.. R 0850: 50 43 5f 42 49 4e 44 49 4e 47 5f 48 41 4e 44 4c PC_BINDING_HANDL 0860: 45 2a 2c 20 55 55 49 44 2a 2c 20 77 63 68 61 72 E*, UUID*, wchar 0870: 2a 2a 29 3b 0d 0a 76 65 72 73 69 6f 6e 20 28 55 **);..version (U 0880: 6e 69 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 nicode) {...alia 0890: 73 20 52 70 63 4d 67 6d 74 45 70 45 6c 74 49 6e s RpcMgmtEpEltIn 08a0: 71 4e 65 78 74 57 20 52 70 63 4d 67 6d 74 45 70 qNextW RpcMgmtEp 08b0: 45 6c 74 49 6e 71 4e 65 78 74 3b 0d 0a 09 61 6c EltInqNext;...al 08c0: 69 61 73 20 44 63 65 45 72 72 6f 72 49 6e 71 54 ias DceErrorInqT 08d0: 65 78 74 57 20 44 63 65 45 72 72 6f 72 49 6e 71 extW DceErrorInq 08e0: 54 65 78 74 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d Text;..} else {. 08f0: 0a 09 61 6c 69 61 73 20 52 70 63 4d 67 6d 74 45 ..alias RpcMgmtE 0900: 70 45 6c 74 49 6e 71 4e 65 78 74 41 20 52 70 63 pEltInqNextA Rpc 0910: 4d 67 6d 74 45 70 45 6c 74 49 6e 71 4e 65 78 74 MgmtEpEltInqNext 0920: 3b 0d 0a 09 61 6c 69 61 73 20 44 63 65 45 72 72 ;...alias DceErr 0930: 6f 72 49 6e 71 54 65 78 74 41 20 44 63 65 45 72 orInqTextA DceEr 0940: 72 6f 72 49 6e 71 54 65 78 74 3b 0d 0a 7d 0d 0a rorInqText;..}.. 0950: 2f 2b 0d 0a 23 65 6c 73 65 20 2f 2a 20 52 50 43 /+..#else /* RPC 0960: 5f 55 4e 49 43 4f 44 45 5f 53 55 50 50 4f 52 54 _UNICODE_SUPPORT 0970: 45 44 20 2a 2f 0d 0a 09 52 50 43 5f 53 54 41 54 ED */...RPC_STAT 0980: 55 53 20 52 50 43 5f 45 4e 54 52 59 20 44 63 65 US RPC_ENTRY Dce 0990: 45 72 72 6f 72 49 6e 71 54 65 78 74 28 52 50 43 ErrorInqText(RPC 09a0: 5f 53 54 41 54 55 53 2c 75 6e 73 69 67 6e 65 64 _STATUS,unsigned 09b0: 20 63 68 61 72 2a 29 3b 0d 0a 09 52 50 43 5f 53 char*);...RPC_S 09c0: 54 41 54 55 53 20 52 50 43 5f 45 4e 54 52 59 20 TATUS RPC_ENTRY 09d0: 52 70 63 4d 67 6d 74 45 70 45 6c 74 49 6e 71 4e RpcMgmtEpEltInqN 09e0: 65 78 74 28 52 50 43 5f 45 50 5f 49 4e 51 5f 48 ext(RPC_EP_INQ_H 09f0: 41 4e 44 4c 45 2c 52 50 43 5f 49 46 5f 49 44 2a ANDLE,RPC_IF_ID* 0a00: 2c 52 50 43 5f 42 49 4e 44 49 4e 47 5f 48 41 4e ,RPC_BINDING_HAN 0a10: 44 4c 45 2a 2c 55 55 49 44 2a 2c 75 6e 73 69 67 DLE*,UUID*,unsig 0a20: 6e 65 64 20 63 68 61 72 2a 2a 29 3b 0d 0a 23 65 ned char**);..#e 0a30: 6e 64 69 66 0d 0a 2b 2f 0d 0a ndif..+/..