Differences From Artifact [fac68aa535f8bb3c]:
- File
src/win32/rpcdcep.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
To Artifact [c14904c7a961f355]:
- File
src/win32/rpcdcep.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.
9 \***********************************************************************/ 9 \***********************************************************************/
10 module win32.rpcdcep; 10 module win32.rpcdcep;
11 11
12 private import win32.basetyps; 12 private import win32.basetyps;
13 private import win32.w32api; 13 private import win32.w32api;
14 private import win32.windef; 14 private import win32.windef;
15 15
16 alias HANDLE I_RPC_HANDLE; | 16 mixin DECLARE_HANDLE!("I_RPC_HANDLE");
17 alias long RPC_STATUS; 17 alias long RPC_STATUS;
18 18
19 const RPC_NCA_FLAGS_DEFAULT=0; 19 const RPC_NCA_FLAGS_DEFAULT=0;
20 const RPC_NCA_FLAGS_IDEMPOTENT=1; 20 const RPC_NCA_FLAGS_IDEMPOTENT=1;
21 const RPC_NCA_FLAGS_BROADCAST=2; 21 const RPC_NCA_FLAGS_BROADCAST=2;
22 const RPC_NCA_FLAGS_MAYBE=4; 22 const RPC_NCA_FLAGS_MAYBE=4;
23 const RPCFLG_ASYNCHRONOUS=0x40000000; 23 const RPCFLG_ASYNCHRONOUS=0x40000000;
................................................................................................................................................................................
75 uint Length; 75 uint Length;
76 RPC_SYNTAX_IDENTIFIER InterfaceId; 76 RPC_SYNTAX_IDENTIFIER InterfaceId;
77 RPC_SYNTAX_IDENTIFIER TransferSyntax; 77 RPC_SYNTAX_IDENTIFIER TransferSyntax;
78 PRPC_DISPATCH_TABLE DispatchTable; 78 PRPC_DISPATCH_TABLE DispatchTable;
79 uint RpcProtseqEndpointCount; 79 uint RpcProtseqEndpointCount;
80 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; 80 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
81 void* DefaultManagerEpv; 81 void* DefaultManagerEpv;
82 CPtr!(void) InterpreterInfo; | 82 const(void)* InterpreterInfo;
83 } 83 }
84 alias RPC_SERVER_INTERFACE* PRPC_SERVER_INTERFACE; 84 alias RPC_SERVER_INTERFACE* PRPC_SERVER_INTERFACE;
85 85
86 struct RPC_CLIENT_INTERFACE { 86 struct RPC_CLIENT_INTERFACE {
87 uint Length; 87 uint Length;
88 RPC_SYNTAX_IDENTIFIER InterfaceId; 88 RPC_SYNTAX_IDENTIFIER InterfaceId;
89 RPC_SYNTAX_IDENTIFIER TransferSyntax; 89 RPC_SYNTAX_IDENTIFIER TransferSyntax;
90 PRPC_DISPATCH_TABLE DispatchTable; 90 PRPC_DISPATCH_TABLE DispatchTable;
91 uint RpcProtseqEndpointCount; 91 uint RpcProtseqEndpointCount;
92 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; 92 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
93 uint Reserved; 93 uint Reserved;
94 CPtr!(void) InterpreterInfo; | 94 const(void)* InterpreterInfo;
95 } 95 }
96 alias RPC_CLIENT_INTERFACE* PRPC_CLIENT_INTERFACE; 96 alias RPC_CLIENT_INTERFACE* PRPC_CLIENT_INTERFACE;
97 97
98 alias void* I_RPC_MUTEX; | 98 alias TypeDef!(void*) I_RPC_MUTEX;
99 99
100 struct RPC_TRANSFER_SYNTAX { 100 struct RPC_TRANSFER_SYNTAX {
101 GUID Uuid; 101 GUID Uuid;
102 ushort VersMajor; 102 ushort VersMajor;
103 ushort VersMinor; 103 ushort VersMinor;
104 } 104 }
105 alias RPC_STATUS function(void*, void*, void*) RPC_BLOCKING_FN; 105 alias RPC_STATUS function(void*, void*, void*) RPC_BLOCKING_FN;
................................................................................................................................................................................
118 void I_RpcFree(void*); 118 void I_RpcFree(void*);
119 void I_RpcPauseExecution(uint); 119 void I_RpcPauseExecution(uint);
120 int I_RpcMonitorAssociation(HANDLE, PRPC_RUNDOWN, void*); 120 int I_RpcMonitorAssociation(HANDLE, PRPC_RUNDOWN, void*);
121 int I_RpcStopMonitorAssociation(HANDLE); 121 int I_RpcStopMonitorAssociation(HANDLE);
122 HANDLE I_RpcGetCurrentCallHandle(); 122 HANDLE I_RpcGetCurrentCallHandle();
123 int I_RpcGetAssociationContext(void**); 123 int I_RpcGetAssociationContext(void**);
124 int I_RpcSetAssociationContext(void*); 124 int I_RpcSetAssociationContext(void*);
125 <
126 static if (_WIN32_WINNT_ONLY) { <
127 int I_RpcNsBindingSetEntryName(HANDLE, uint, wchar*); | 125 int I_RpcNsBindingSetEntryName(HANDLE, uint, wchar*);
128 int I_RpcBindingInqDynamicEndpoint(HANDLE, wchar**); | 126 int I_RpcBindingInqDynamicEndpoint(HANDLE, wchar**);
129 } else { <
130 int I_RpcNsBindingSetEntryName(HANDLE, uint, char*); <
131 int I_RpcBindingInqDynamicEndpoint(HANDLE, char**); <
132 } <
133 <
134 int I_RpcBindingInqTransportType(HANDLE, uint*); | 127 int I_RpcBindingInqTransportType(HANDLE, uint*);
135 int I_RpcIfInqTransferSyntaxes(HANDLE, RPC_TRANSFER_SYNTAX*, uint, | 128 int I_RpcIfInqTransferSyntaxes(HANDLE, RPC_TRANSFER_SYNTAX*, uint,
136 uint*); | 129 uint*);
137 int I_UuidCreate(GUID*); | 130 int I_UuidCreate(GUID*);
138 int I_RpcBindingCopy(HANDLE, HANDLE*); | 131 int I_RpcBindingCopy(HANDLE, HANDLE*);
139 int I_RpcBindingIsClientLocal(HANDLE, uint*); | 132 int I_RpcBindingIsClientLocal(HANDLE, uint*);
140 void I_RpcSsDontSerializeContext(); | 133 void I_RpcSsDontSerializeContext();
141 int I_RpcServerRegisterForwardFunction(int function (GUID*, | 134 int I_RpcServerRegisterForwardFunction(int function (GUID*,
142 RPC_VERSION*, GUID*, ubyte*, void**)); | 135 RPC_VERSION*, GUID*, ubyte*, void**));
143 int I_RpcConnectionInqSockBuffSize(uint*, uint*); | 136 int I_RpcConnectionInqSockBuffSize(uint*, uint*);
144 int I_RpcConnectionSetSockBuffSize(uint, uint); | 137 int I_RpcConnectionSetSockBuffSize(uint, uint);
145 int I_RpcBindingSetAsync(HANDLE, RPC_BLOCKING_FN); | 138 int I_RpcBindingSetAsync(HANDLE, RPC_BLOCKING_FN);
146 int I_RpcAsyncSendReceive(RPC_MESSAGE*, void*); | 139 int I_RpcAsyncSendReceive(RPC_MESSAGE*, void*);
147 int I_RpcGetThreadWindowHandle(void**); | 140 int I_RpcGetThreadWindowHandle(void**);
148 int I_RpcServerThreadPauseListening(); | 141 int I_RpcServerThreadPauseListening();
149 int I_RpcServerThreadContinueListening(); | 142 int I_RpcServerThreadContinueListening();
150 int I_RpcServerUnregisterEndpointA(ubyte*, ubyte*); | 143 int I_RpcServerUnregisterEndpointA(ubyte*, ubyte*);
151 int I_RpcServerUnregisterEndpointW(ushort*, ushort*); | 144 int I_RpcServerUnregisterEndpointW(ushort*, ushort*);
152 } 145 }
153 146
154 version(Unicode) { 147 version(Unicode) {
155 alias I_RpcServerUnregisterEndpointW I_RpcServerUnregisterEndpoint; 148 alias I_RpcServerUnregisterEndpointW I_RpcServerUnregisterEndpoint;
156 } else { 149 } else {
157 alias I_RpcServerUnregisterEndpointA I_RpcServerUnregisterEndpoint; 150 alias I_RpcServerUnregisterEndpointA I_RpcServerUnregisterEndpoint;
158 } 151 }