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