VirtualBox

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

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

Devices/Main: vmsvga updates

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

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