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