VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/rpcdcep.h@ 53201

最後變更 在這個檔案從53201是 53201,由 vboxsync 提交於 10 年 前

Devices/Main: vmsvga updates

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 7.2 KB
 
1/*
2 * Copyright (C) 2000 Francois Gouget
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef __WINE_RPCDCEP_H
20#define __WINE_RPCDCEP_H
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26typedef struct _RPC_VERSION {
27 unsigned short MajorVersion;
28 unsigned short MinorVersion;
29} RPC_VERSION;
30
31typedef struct _RPC_SYNTAX_IDENTIFIER {
32 GUID SyntaxGUID;
33 RPC_VERSION SyntaxVersion;
34} RPC_SYNTAX_IDENTIFIER, *PRPC_SYNTAX_IDENTIFIER;
35
36typedef struct _RPC_MESSAGE
37{
38 RPC_BINDING_HANDLE Handle;
39 ULONG DataRepresentation;
40 void* Buffer;
41 unsigned int BufferLength;
42 unsigned int ProcNum;
43 PRPC_SYNTAX_IDENTIFIER TransferSyntax;
44 void* RpcInterfaceInformation;
45 void* ReservedForRuntime;
46 RPC_MGR_EPV* ManagerEpv;
47 void* ImportContext;
48 ULONG RpcFlags;
49} RPC_MESSAGE, *PRPC_MESSAGE;
50
51/* or'ed with ProcNum */
52#define RPC_FLAGS_VALID_BIT 0x00008000
53
54#define RPC_CONTEXT_HANDLE_DEFAULT_GUARD ((void *)0xfffff00d)
55
56#define RPC_CONTEXT_HANDLE_DEFAULT_FLAGS 0x00000000
57#define RPC_CONTEXT_HANDLE_FLAGS 0x30000000
58#define RPC_CONTEXT_HANDLE_SERIALIZE 0x10000000
59#define RPC_CONTEXT_HANDLE_DONT_SERIALIZE 0x20000000
60#define RPC_TYPE_STRICT_CONTEXT_HANDLE 0x40000000
61
62#define RPC_NCA_FLAGS_DEFAULT 0x00000000
63#define RPC_NCA_FLAGS_IDEMPOTENT 0x00000001
64#define RPC_NCA_FLAGS_BROADCAST 0x00000002
65#define RPC_NCA_FLAGS_MAYBE 0x00000004
66
67#define RPC_BUFFER_COMPLETE 0x00001000
68#define RPC_BUFFER_PARTIAL 0x00002000
69#define RPC_BUFFER_EXTRA 0x00004000
70#define RPC_BUFFER_ASYNC 0x00008000
71#define RPC_BUFFER_NONOTIFY 0x00010000
72
73#define RPCFLG_MESSAGE 0x01000000
74#define RPCFLG_HAS_MULTI_SYNTAXES 0x02000000
75#define RPCFLG_HAS_CALLBACK 0x04000000
76#define RPCFLG_AUTO_COMPLETE 0x08000000
77#define RPCFLG_LOCAL_CALL 0x10000000
78#define RPCFLG_INPUT_SYNCHRONOUS 0x20000000
79#define RPCFLG_ASYNCHRONOUS 0x40000000
80#define RPCFLG_NON_NDR 0x80000000
81
82typedef void (__RPC_STUB *RPC_DISPATCH_FUNCTION)(PRPC_MESSAGE Message);
83typedef RPC_STATUS (RPC_ENTRY *RPC_FORWARD_FUNCTION)(UUID *InterfaceId, RPC_VERSION *InterfaceVersion, UUID *ObjectId, unsigned char *Rpcpro, void **ppDestEndpoint);
84
85typedef struct
86{
87 unsigned int DispatchTableCount;
88 RPC_DISPATCH_FUNCTION* DispatchTable;
89 LONG_PTR Reserved;
90} RPC_DISPATCH_TABLE, *PRPC_DISPATCH_TABLE;
91
92typedef struct _RPC_PROTSEQ_ENDPOINT
93{
94 unsigned char* RpcProtocolSequence;
95 unsigned char* Endpoint;
96} RPC_PROTSEQ_ENDPOINT, *PRPC_PROTSEQ_ENDPOINT;
97
98#define NT351_INTERFACE_SIZE 0x40
99#define RPC_INTERFACE_HAS_PIPES 0x0001
100
101typedef struct _RPC_SERVER_INTERFACE
102{
103 unsigned int Length;
104 RPC_SYNTAX_IDENTIFIER InterfaceId;
105 RPC_SYNTAX_IDENTIFIER TransferSyntax;
106 PRPC_DISPATCH_TABLE DispatchTable;
107 unsigned int RpcProtseqEndpointCount;
108 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
109 RPC_MGR_EPV* DefaultManagerEpv;
110 void const* InterpreterInfo;
111 unsigned int Flags;
112} RPC_SERVER_INTERFACE, *PRPC_SERVER_INTERFACE;
113
114typedef struct _RPC_CLIENT_INTERFACE
115{
116 unsigned int Length;
117 RPC_SYNTAX_IDENTIFIER InterfaceId;
118 RPC_SYNTAX_IDENTIFIER TransferSyntax;
119 PRPC_DISPATCH_TABLE DispatchTable;
120 unsigned int RpcProtseqEndpointCount;
121 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
122 ULONG_PTR Reserved;
123 void const* InterpreterInfo;
124 unsigned int Flags;
125} RPC_CLIENT_INTERFACE, *PRPC_CLIENT_INTERFACE;
126
127#define RPC_C_OPT_COOKIE_AUTH 7
128
129typedef struct _RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR
130{
131 ULONG BufferSize;
132 char *Buffer;
133} RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR;
134
135#define TRANSPORT_TYPE_CN 0x01
136#define TRANSPORT_TYPE_DG 0x02
137#define TRANSPORT_TYPE_LPC 0x04
138#define TRANSPORT_TYPE_WMSG 0x08
139
140RPCRTAPI RPC_STATUS RPC_ENTRY
141 I_RpcNegotiateTransferSyntax( RPC_MESSAGE* Message );
142RPCRTAPI RPC_STATUS RPC_ENTRY
143 I_RpcGetBuffer( RPC_MESSAGE* Message );
144RPCRTAPI RPC_STATUS RPC_ENTRY
145 I_RpcGetBufferWithObject( RPC_MESSAGE* Message, UUID* ObjectUuid );
146RPCRTAPI RPC_STATUS RPC_ENTRY
147 I_RpcSendReceive( RPC_MESSAGE* Message );
148RPCRTAPI RPC_STATUS RPC_ENTRY
149 I_RpcFreeBuffer( RPC_MESSAGE* Message );
150RPCRTAPI RPC_STATUS RPC_ENTRY
151 I_RpcSend( RPC_MESSAGE* Message );
152RPCRTAPI RPC_STATUS RPC_ENTRY
153 I_RpcReceive( RPC_MESSAGE* Message );
154
155RPCRTAPI void* RPC_ENTRY
156 I_RpcAllocate( unsigned int Size );
157RPCRTAPI void RPC_ENTRY
158 I_RpcFree( void* Object );
159
160RPCRTAPI RPC_BINDING_HANDLE RPC_ENTRY
161 I_RpcGetCurrentCallHandle( void );
162
163/*
164 * The platform SDK headers don't define these functions at all if WINNT is defined
165 * The MSVC6 headers define two different sets of functions :
166 * If WINNT and MSWMSG are defined, the NT versions are defined
167 * If WINNT is not defined, the windows 9x versions are defined.
168 * Note that the prototypes for I_RpcBindingSetAsync are different for each case.
169 *
170 * Wine defaults to the WinNT case and only defines these function is MSWMSG is
171 * defined. Defining the NT functions by default causes MIDL generated proxies
172 * to not compile.
173 */
174
175#if 1 /* WINNT */
176#ifdef MSWMSG
177
178RPCRTAPI RPC_STATUS RPC_ENTRY
179 I_RpcServerStartListening( HWND hWnd );
180RPCRTAPI RPC_STATUS RPC_ENTRY
181 I_RpcServerStopListening( void );
182/* WINNT */
183RPCRTAPI RPC_STATUS RPC_ENTRY
184 I_GetThreadWindowHandle( HWND* hWnd );
185RPCRTAPI RPC_STATUS RPC_ENTRY
186 I_RpcAsyncSendReceive( RPC_MESSAGE* Message, void* Context, HWND hWnd );
187
188typedef RPC_STATUS (*RPC_BLOCKING_FN)(void* hWnd, void* Context, HANDLE hSyncEvent);
189
190RPCRTAPI RPC_STATUS RPC_ENTRY
191 I_RpcBindingSetAsync( RPC_BINDING_HANDLE Binding, RPC_BLOCKING_FN BlockingFn );
192
193RPCRTAPI UINT RPC_ENTRY
194 I_RpcWindowProc( void* hWnd, UINT Message, UINT wParam, ULONG lParam );
195
196RPCRTAPI RPC_STATUS RPC_ENTRY
197 I_RpcSetWMsgEndpoint( WCHAR* Endpoint );
198
199#endif
200
201#else
202
203/* WIN9x */
204RPCRTAPI RPC_STATUS RPC_ENTRY
205 I_RpcServerStartListening( void* hWnd );
206
207RPCRTAPI RPC_STATUS RPC_ENTRY
208 I_RpcServerStopListening( void );
209
210typedef RPC_STATUS (*RPC_BLOCKING_FN)(void* hWnd, void* Context, void* hSyncEvent);
211
212RPCRTAPI RPC_STATUS RPC_ENTRY
213 I_RpcBindingSetAsync( RPC_BINDING_HANDLE Binding, RPC_BLOCKING_FN BlockingFn, ULONG ServerTid );
214
215RPCRTAPI RPC_STATUS RPC_ENTRY
216 I_RpcSetThreadParams( int fClientFree, void* Context, void* hWndClient );
217
218RPCRTAPI UINT RPC_ENTRY
219 I_RpcWindowProc( void* hWnd, unsigned int Message, unsigned int wParam, ULONG lParam );
220
221#endif
222
223RPCRTAPI RPC_STATUS RPC_ENTRY
224 I_RpcBindingInqTransportType( RPC_BINDING_HANDLE Binding, unsigned int* Type );
225
226RPCRTAPI LONG RPC_ENTRY I_RpcMapWin32Status(RPC_STATUS);
227
228#ifdef __cplusplus
229}
230#endif
231
232#endif /*__WINE_RPCDCEP_H */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette