1 /**
2 * Windows API header module
3 *
4 * Translated from MinGW Windows headers
5 *
6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7 * Source: $(DRUNTIMESRC src/core/sys/windows/_rpcdcep.d)
8 */
9 module core.sys.windows.rpcdcep;
version(Windows)10 version (Windows):
11
12 version (ANSI) {} else version = Unicode;
13
14 private import core.sys.windows.basetyps;
15 private import core.sys.windows.w32api;
16 private import core.sys.windows.windef;
17
18 mixin DECLARE_HANDLE!("I_RPC_HANDLE");
19 alias long RPC_STATUS;
20
21 enum RPC_NCA_FLAGS_DEFAULT=0;
22 enum RPC_NCA_FLAGS_IDEMPOTENT=1;
23 enum RPC_NCA_FLAGS_BROADCAST=2;
24 enum RPC_NCA_FLAGS_MAYBE=4;
25 enum RPCFLG_ASYNCHRONOUS=0x40000000;
26 enum RPCFLG_INPUT_SYNCHRONOUS=0x20000000;
27 enum RPC_FLAGS_VALID_BIT=0x8000;
28
29 enum TRANSPORT_TYPE_CN=1;
30 enum TRANSPORT_TYPE_DG=2;
31 enum TRANSPORT_TYPE_LPC=4;
32 enum TRANSPORT_TYPE_WMSG=8;
33
34 struct RPC_VERSION {
35 ushort MajorVersion;
36 ushort MinorVersion;
37 }
38 struct RPC_SYNTAX_IDENTIFIER {
39 GUID SyntaxGUID;
40 RPC_VERSION SyntaxVersion;
41 }
42 alias RPC_SYNTAX_IDENTIFIER* PRPC_SYNTAX_IDENTIFIER;
43
44 struct RPC_MESSAGE {
45 HANDLE Handle;
46 uint DataRepresentation;
47 void* Buffer;
48 uint BufferLength;
49 uint ProcNum;
50 PRPC_SYNTAX_IDENTIFIER TransferSyntax;
51 void* RpcInterfaceInformation;
52 void* ReservedForRuntime;
53 void* ManagerEpv;
54 void* ImportContext;
55 uint RpcFlags;
56 }
57 alias RPC_MESSAGE* PRPC_MESSAGE;
58
59 extern (Windows) {
60 alias void function (PRPC_MESSAGE Message) RPC_DISPATCH_FUNCTION;
61 }
62
63 struct RPC_DISPATCH_TABLE {
64 uint DispatchTableCount;
65 RPC_DISPATCH_FUNCTION* DispatchTable;
66 LONG_PTR Reserved;
67 }
68 alias RPC_DISPATCH_TABLE* PRPC_DISPATCH_TABLE;
69
70 struct RPC_PROTSEQ_ENDPOINT {
71 ubyte* RpcProtocolSequence;
72 ubyte* Endpoint;
73 }
74 alias RPC_PROTSEQ_ENDPOINT* PRPC_PROTSEQ_ENDPOINT;
75
76 struct RPC_SERVER_INTERFACE {
77 uint Length;
78 RPC_SYNTAX_IDENTIFIER InterfaceId;
79 RPC_SYNTAX_IDENTIFIER TransferSyntax;
80 PRPC_DISPATCH_TABLE DispatchTable;
81 uint RpcProtseqEndpointCount;
82 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
83 void* DefaultManagerEpv;
84 const(void)* InterpreterInfo;
85 }
86 alias RPC_SERVER_INTERFACE* PRPC_SERVER_INTERFACE;
87
88 struct RPC_CLIENT_INTERFACE {
89 uint Length;
90 RPC_SYNTAX_IDENTIFIER InterfaceId;
91 RPC_SYNTAX_IDENTIFIER TransferSyntax;
92 PRPC_DISPATCH_TABLE DispatchTable;
93 uint RpcProtseqEndpointCount;
94 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
95 ULONG_PTR Reserved;
96 const(void)* InterpreterInfo;
97 }
98 alias RPC_CLIENT_INTERFACE* PRPC_CLIENT_INTERFACE;
99
100 alias TypeDef!(void*) I_RPC_MUTEX;
101
102 struct RPC_TRANSFER_SYNTAX {
103 GUID Uuid;
104 ushort VersMajor;
105 ushort VersMinor;
106 }
107 alias RPC_STATUS function(void*, void*, void*) RPC_BLOCKING_FN;
108
109 extern (Windows) {
110 alias void function(void*) PRPC_RUNDOWN;
111
112 int I_RpcGetBuffer(RPC_MESSAGE*);
113 int I_RpcSendReceive(RPC_MESSAGE*);
114 int I_RpcSend(RPC_MESSAGE*);
115 int I_RpcFreeBuffer(RPC_MESSAGE*);
116 void I_RpcRequestMutex(I_RPC_MUTEX*);
117 void I_RpcClearMutex(I_RPC_MUTEX);
118 void I_RpcDeleteMutex(I_RPC_MUTEX);
119 void* I_RpcAllocate(uint);
120 void I_RpcFree(void*);
121 void I_RpcPauseExecution(uint);
122 int I_RpcMonitorAssociation(HANDLE, PRPC_RUNDOWN, void*);
123 int I_RpcStopMonitorAssociation(HANDLE);
124 HANDLE I_RpcGetCurrentCallHandle();
125 int I_RpcGetAssociationContext(void**);
126 int I_RpcSetAssociationContext(void*);
127 int I_RpcNsBindingSetEntryName(HANDLE, uint, wchar*);
128 int I_RpcBindingInqDynamicEndpoint(HANDLE, wchar**);
129 int I_RpcBindingInqTransportType(HANDLE, uint*);
130 int I_RpcIfInqTransferSyntaxes(HANDLE, RPC_TRANSFER_SYNTAX*, uint,
131 uint*);
132 int I_UuidCreate(GUID*);
133 int I_RpcBindingCopy(HANDLE, HANDLE*);
134 int I_RpcBindingIsClientLocal(HANDLE, uint*);
135 void I_RpcSsDontSerializeContext();
136 int I_RpcServerRegisterForwardFunction(int function (GUID*,
137 RPC_VERSION*, GUID*, ubyte*, void**));
138 int I_RpcConnectionInqSockBuffSize(uint*, uint*);
139 int I_RpcConnectionSetSockBuffSize(uint, uint);
140 int I_RpcBindingSetAsync(HANDLE, RPC_BLOCKING_FN);
141 int I_RpcAsyncSendReceive(RPC_MESSAGE*, void*);
142 int I_RpcGetThreadWindowHandle(void**);
143 int I_RpcServerThreadPauseListening();
144 int I_RpcServerThreadContinueListening();
145 int I_RpcServerUnregisterEndpointA(ubyte*, ubyte*);
146 int I_RpcServerUnregisterEndpointW(ushort*, ushort*);
147 }
148
version(Unicode)149 version (Unicode) {
150 alias I_RpcServerUnregisterEndpointW I_RpcServerUnregisterEndpoint;
151 } else {
152 alias I_RpcServerUnregisterEndpointA I_RpcServerUnregisterEndpoint;
153 }
154