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..+/..