VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/rpcasync.h

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

Devices/vmsvga: header fixes

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 6.3 KB
 
1/*
2 * Copyright (C) 2007 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/*
20 * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
21 * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
22 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
23 * a choice of LGPL license versions is made available with the language indicating
24 * that LGPLv2 or any later version may be used, or where a choice of which version
25 * of the LGPL is applied is otherwise unspecified.
26 */
27
28#ifndef __WINE_RPCASYNC_H
29#define __WINE_RPCASYNC_H
30
31#ifdef RPC_NO_WINDOWS_H
32# include <windef.h>
33#endif
34
35#ifdef __RPC_WIN64__
36# include <pshpack8.h>
37#endif
38
39typedef struct tagRPC_ERROR_ENUM_HANDLE
40{
41 ULONG Signature;
42 void* CurrentPos;
43 void* Head;
44} RPC_ERROR_ENUM_HANDLE;
45
46typedef enum tagExtendedErrorParamTypes
47{
48 eeptAnsiString = 1,
49 eeptUnicodeString,
50 eeptLongVal,
51 eeptShortVal,
52 eeptPointerVal,
53 eeptNone,
54 eeptBinary
55} ExtendedErrorParamTypes;
56
57#define MaxNumberOfEEInfoParams 4
58#define RPC_EEINFO_VERSION 1
59
60typedef struct tagBinaryParam
61{
62 void *Buffer;
63 short Size;
64} BinaryParam;
65
66typedef struct tagRPC_EE_INFO_PARAM
67{
68 ExtendedErrorParamTypes ParameterType;
69 union
70 {
71 LPSTR AnsiString;
72 LPWSTR UnicodeString;
73 LONG LVal;
74 short SVal;
75 ULONGLONG PVal;
76 BinaryParam BVal;
77 } u;
78} RPC_EE_INFO_PARAM;
79
80#define EEInfoPreviousRecordsMissing 0x1
81#define EEInfoNextRecordsMissing 0x2
82#define EEInfoUseFileTime 0x4
83
84#define EEInfoGCCOM 11
85#define EEInfoGCFRS 12
86
87typedef struct tagRPC_EXTENDED_ERROR_INFO
88{
89 ULONG Version;
90 LPWSTR ComputerName;
91 ULONG ProcessID;
92 union
93 {
94 SYSTEMTIME SystemTime;
95 FILETIME FileTime;
96 } u;
97 ULONG GeneratingComponent;
98 ULONG Status;
99 USHORT DetectionLocation;
100 USHORT Flags;
101 int NumberOfParameters;
102 RPC_EE_INFO_PARAM Parameters[MaxNumberOfEEInfoParams];
103} RPC_EXTENDED_ERROR_INFO;
104
105#define RPC_ASYNC_VERSION_1_0 sizeof(RPC_ASYNC_STATE)
106
107typedef enum _RPC_NOTIFICATION_TYPES
108{
109 RpcNotificationTypeNone,
110 RpcNotificationTypeEvent,
111 RpcNotificationTypeApc,
112 RpcNotificationTypeIoc,
113 RpcNotificationTypeHwnd,
114 RpcNotificationTypeCallback,
115} RPC_NOTIFICATION_TYPES;
116
117typedef enum _RPC_ASYNC_EVENT
118{
119 RpcCallComplete,
120 RpcSendComplete,
121 RpcReceiveComplete,
122 RpcClientDisconnect,
123 RpcClientCancel,
124} RPC_ASYNC_EVENT;
125
126struct _RPC_ASYNC_STATE;
127
128typedef void RPC_ENTRY RPCNOTIFICATION_ROUTINE(struct _RPC_ASYNC_STATE *,void *,RPC_ASYNC_EVENT);
129typedef RPCNOTIFICATION_ROUTINE *PFN_RPCNOTIFICATION_ROUTINE;
130
131typedef union _RPC_ASYNC_NOTIFICATION_INFO
132{
133 struct
134 {
135 PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
136 HANDLE hThread;
137 } APC;
138 struct
139 {
140 HANDLE hIOPort;
141 DWORD dwNumberOfBytesTransferred;
142 DWORD_PTR dwCompletionKey;
143 LPOVERLAPPED lpOverlapped;
144 } IOC;
145 struct
146 {
147 HWND hWnd;
148 UINT Msg;
149 } HWND;
150 HANDLE hEvent;
151 PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
152} RPC_ASYNC_NOTIFICATION_INFO, *PRPC_ASYNC_NOTIFICATION_INFO;
153
154#define RPC_C_NOTIFY_ON_SEND_COMPLETE 0x1
155#define RPC_C_INFINITE_TIMEOUT INFINITE
156
157typedef struct _RPC_ASYNC_STATE
158{
159 unsigned int Size;
160 ULONG Signature;
161 LONG Lock;
162 ULONG Flags;
163 void *StubInfo;
164 void *UserInfo;
165 void *RuntimeInfo;
166 RPC_ASYNC_EVENT Event;
167 RPC_NOTIFICATION_TYPES NotificationType;
168 RPC_ASYNC_NOTIFICATION_INFO u;
169 LONG_PTR Reserved[4];
170} RPC_ASYNC_STATE, *PRPC_ASYNC_STATE;
171
172#define RpcAsyncGetCallHandle(async) (((PRPC_ASYNC_STATE)async)->RuntimeInfo)
173
174#ifdef __RPC_WIN64__
175# include <poppack.h>
176#endif
177
178#ifdef __cplusplus
179extern "C" {
180#endif
181
182RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncInitializeHandle(PRPC_ASYNC_STATE,unsigned int);
183RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncRegisterInfo(PRPC_ASYNC_STATE);
184RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncGetCallStatus(PRPC_ASYNC_STATE);
185RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCompleteCall(PRPC_ASYNC_STATE,void *);
186RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncAbortCall(PRPC_ASYNC_STATE,ULONG);
187RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCancelCall(PRPC_ASYNC_STATE,BOOL);
188RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCleanupThread(DWORD);
189RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorStartEnumeration(RPC_ERROR_ENUM_HANDLE*);
190RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNextRecord(RPC_ERROR_ENUM_HANDLE*,BOOL,RPC_EXTENDED_ERROR_INFO*);
191RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorEndEnumeration(RPC_ERROR_ENUM_HANDLE*);
192RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorResetEnumeration(RPC_ERROR_ENUM_HANDLE*);
193RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNumberOfRecords(RPC_ERROR_ENUM_HANDLE*,int*);
194RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorSaveErrorInfo(RPC_ERROR_ENUM_HANDLE*,PVOID*,SIZE_T*);
195RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorLoadErrorInfo(PVOID,SIZE_T,RPC_ERROR_ENUM_HANDLE*);
196RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorAddRecord(RPC_EXTENDED_ERROR_INFO*);
197RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorClearInformation(void);
198RPCRTAPI RPC_STATUS RPC_ENTRY RpcGetAuthorizationContextForClient(RPC_BINDING_HANDLE,BOOL,LPVOID,PLARGE_INTEGER,LUID,DWORD,PVOID,PVOID*);
199RPCRTAPI RPC_STATUS RPC_ENTRY RpcFreeAuthorizationContext(PVOID*);
200RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockExclusive(RPC_BINDING_HANDLE,PVOID);
201RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockShared(RPC_BINDING_HANDLE,PVOID);
202
203RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncSetHandle(PRPC_MESSAGE,PRPC_ASYNC_STATE);
204RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncAbortCall(PRPC_ASYNC_STATE,ULONG);
205RPCRTAPI int RPC_ENTRY I_RpcExceptionFilter(ULONG);
206
207#ifdef __cplusplus
208}
209#endif
210
211#endif
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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