Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/rpcasync.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /** | |
| 2 * This file has no copyright assigned and is placed in the Public Domain. | |
| 3 * This file is part of the w64 mingw-runtime package. | |
| 4 * No warranty is given; refer to the file DISCLAIMER within this package. | |
| 5 */ | |
| 6 #ifndef __RPCASYNC_H__ | |
| 7 #define __RPCASYNC_H__ | |
| 8 | |
| 9 #ifdef __RPC_WIN64__ | |
| 10 #include <pshpack8.h> | |
| 11 #endif | |
| 12 | |
| 13 #ifdef __cplusplus | |
| 14 extern "C" { | |
| 15 #endif | |
| 16 | |
| 17 #define RPC_ASYNC_VERSION_1_0 sizeof(RPC_ASYNC_STATE) | |
| 18 | |
| 19 typedef enum _RPC_NOTIFICATION_TYPES { | |
| 20 RpcNotificationTypeNone,RpcNotificationTypeEvent,RpcNotificationTypeApc,RpcNotificationTypeIoc,RpcNotificationTypeHwnd, | |
| 21 RpcNotificationTypeCallback | |
| 22 } RPC_NOTIFICATION_TYPES; | |
| 23 | |
| 24 typedef enum _RPC_ASYNC_EVENT { | |
| 25 RpcCallComplete,RpcSendComplete,RpcReceiveComplete | |
| 26 } RPC_ASYNC_EVENT; | |
| 27 | |
| 28 struct _RPC_ASYNC_STATE; | |
| 29 | |
| 30 typedef void RPC_ENTRY RPCNOTIFICATION_ROUTINE(struct _RPC_ASYNC_STATE *pAsync,void *Context,RPC_ASYNC_EVENT Event); | |
| 31 typedef RPCNOTIFICATION_ROUTINE *PFN_RPCNOTIFICATION_ROUTINE; | |
| 32 | |
| 33 typedef struct _RPC_ASYNC_STATE { | |
| 34 unsigned int Size; | |
| 35 unsigned long Signature; | |
| 36 long Lock; | |
| 37 unsigned long Flags; | |
| 38 void *StubInfo; | |
| 39 void *UserInfo; | |
| 40 void *RuntimeInfo; | |
| 41 RPC_ASYNC_EVENT Event; | |
| 42 RPC_NOTIFICATION_TYPES NotificationType; | |
| 43 union { | |
| 44 struct { | |
| 45 PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine; | |
| 46 HANDLE hThread; | |
| 47 } APC; | |
| 48 struct { | |
| 49 HANDLE hIOPort; | |
| 50 DWORD dwNumberOfBytesTransferred; | |
| 51 DWORD_PTR dwCompletionKey; | |
| 52 LPOVERLAPPED lpOverlapped; | |
| 53 } IOC; | |
| 54 struct { | |
| 55 HWND hWnd; | |
| 56 UINT Msg; | |
| 57 } HWND; | |
| 58 HANDLE hEvent; | |
| 59 PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine; | |
| 60 } u; | |
| 61 LONG_PTR Reserved[4]; | |
| 62 } RPC_ASYNC_STATE,*PRPC_ASYNC_STATE; | |
| 63 | |
| 64 #define RPC_C_NOTIFY_ON_SEND_COMPLETE 0x1 | |
| 65 #define RPC_C_INFINITE_TIMEOUT INFINITE | |
| 66 | |
| 67 #define RpcAsyncGetCallHandle(pAsync) (((PRPC_ASYNC_STATE) pAsync)->RuntimeInfo) | |
| 68 | |
| 69 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncInitializeHandle(PRPC_ASYNC_STATE pAsync,unsigned int Size); | |
| 70 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncRegisterInfo(PRPC_ASYNC_STATE pAsync); | |
| 71 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncGetCallStatus(PRPC_ASYNC_STATE pAsync); | |
| 72 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCompleteCall(PRPC_ASYNC_STATE pAsync,void *Reply); | |
| 73 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncAbortCall(PRPC_ASYNC_STATE pAsync,unsigned long ExceptionCode); | |
| 74 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCancelCall(PRPC_ASYNC_STATE pAsync,WINBOOL fAbort); | |
| 75 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCleanupThread(DWORD dwTimeout); | |
| 76 | |
| 77 typedef enum tagExtendedErrorParamTypes { | |
| 78 eeptAnsiString = 1,eeptUnicodeString,eeptLongVal,eeptShortVal,eeptPointerVal,eeptNone,eeptBinary | |
| 79 } ExtendedErrorParamTypes; | |
| 80 | |
| 81 #define MaxNumberOfEEInfoParams 4 | |
| 82 #define RPC_EEINFO_VERSION 1 | |
| 83 | |
| 84 typedef struct tagBinaryParam { | |
| 85 void *Buffer; | |
| 86 short Size; | |
| 87 } BinaryParam; | |
| 88 | |
| 89 typedef struct tagRPC_EE_INFO_PARAM { | |
| 90 ExtendedErrorParamTypes ParameterType; | |
| 91 union { | |
| 92 LPSTR AnsiString; | |
| 93 LPWSTR UnicodeString; | |
| 94 long LVal; | |
| 95 short SVal; | |
| 96 ULONGLONG PVal; | |
| 97 BinaryParam BVal; | |
| 98 } u; | |
| 99 } RPC_EE_INFO_PARAM; | |
| 100 | |
| 101 #define EEInfoPreviousRecordsMissing 1 | |
| 102 #define EEInfoNextRecordsMissing 2 | |
| 103 #define EEInfoUseFileTime 4 | |
| 104 | |
| 105 #define EEInfoGCCOM 11 | |
| 106 #define EEInfoGCFRS 12 | |
| 107 | |
| 108 typedef struct tagRPC_EXTENDED_ERROR_INFO { | |
| 109 ULONG Version; | |
| 110 LPWSTR ComputerName; | |
| 111 ULONG ProcessID; | |
| 112 union { | |
| 113 SYSTEMTIME SystemTime; | |
| 114 FILETIME FileTime; | |
| 115 } u; | |
| 116 ULONG GeneratingComponent; | |
| 117 ULONG Status; | |
| 118 USHORT DetectionLocation; | |
| 119 USHORT Flags; | |
| 120 int NumberOfParameters; | |
| 121 RPC_EE_INFO_PARAM Parameters[MaxNumberOfEEInfoParams]; | |
| 122 } RPC_EXTENDED_ERROR_INFO; | |
| 123 | |
| 124 typedef struct tagRPC_ERROR_ENUM_HANDLE { | |
| 125 ULONG Signature; | |
| 126 void *CurrentPos; | |
| 127 void *Head; | |
| 128 } RPC_ERROR_ENUM_HANDLE; | |
| 129 | |
| 130 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorStartEnumeration(RPC_ERROR_ENUM_HANDLE *EnumHandle); | |
| 131 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNextRecord(RPC_ERROR_ENUM_HANDLE *EnumHandle,WINBOOL CopyStrings,RPC_EXTENDED_ERROR_INFO *ErrorInfo); | |
| 132 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorEndEnumeration(RPC_ERROR_ENUM_HANDLE *EnumHandle); | |
| 133 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorResetEnumeration(RPC_ERROR_ENUM_HANDLE *EnumHandle); | |
| 134 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNumberOfRecords(RPC_ERROR_ENUM_HANDLE *EnumHandle,int *Records); | |
| 135 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorSaveErrorInfo(RPC_ERROR_ENUM_HANDLE *EnumHandle,PVOID *ErrorBlob,size_t *BlobSize); | |
| 136 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorLoadErrorInfo(PVOID ErrorBlob,size_t BlobSize,RPC_ERROR_ENUM_HANDLE *EnumHandle); | |
| 137 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorAddRecord(RPC_EXTENDED_ERROR_INFO *ErrorInfo); | |
| 138 RPCRTAPI void RPC_ENTRY RpcErrorClearInformation(void); | |
| 139 RPCRTAPI RPC_STATUS RPC_ENTRY RpcGetAuthorizationContextForClient(RPC_BINDING_HANDLE ClientBinding,WINBOOL ImpersonateOnReturn,PVOID Reserved1,PLARGE_INTEGER pExpirationTime,LUID Reserved2,DWORD Reserved3,PVOID Reserved4,PVOID *pAuthzClientContext); | |
| 140 RPCRTAPI RPC_STATUS RPC_ENTRY RpcFreeAuthorizationContext(PVOID *pAuthzClientContext); | |
| 141 RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockExclusive(RPC_BINDING_HANDLE ServerBindingHandle,PVOID UserContext); | |
| 142 RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockShared(RPC_BINDING_HANDLE ServerBindingHandle,PVOID UserContext); | |
| 143 | |
| 144 #define RPC_CALL_ATTRIBUTES_VERSION (1) | |
| 145 #define RPC_QUERY_SERVER_PRINCIPAL_NAME (2) | |
| 146 #define RPC_QUERY_CLIENT_PRINCIPAL_NAME (4) | |
| 147 | |
| 148 typedef struct tagRPC_CALL_ATTRIBUTES_V1_W { | |
| 149 unsigned int Version; | |
| 150 unsigned long Flags; | |
| 151 unsigned long ServerPrincipalNameBufferLength; | |
| 152 unsigned short *ServerPrincipalName; | |
| 153 unsigned long ClientPrincipalNameBufferLength; | |
| 154 unsigned short *ClientPrincipalName; | |
| 155 unsigned long AuthenticationLevel; | |
| 156 unsigned long AuthenticationService; | |
| 157 WINBOOL NullSession; | |
| 158 } RPC_CALL_ATTRIBUTES_V1_W; | |
| 159 | |
| 160 typedef struct tagRPC_CALL_ATTRIBUTES_V1_A { | |
| 161 unsigned int Version; | |
| 162 unsigned long Flags; | |
| 163 unsigned long ServerPrincipalNameBufferLength; | |
| 164 unsigned char *ServerPrincipalName; | |
| 165 unsigned long ClientPrincipalNameBufferLength; | |
| 166 unsigned char *ClientPrincipalName; | |
| 167 unsigned long AuthenticationLevel; | |
| 168 unsigned long AuthenticationService; | |
| 169 WINBOOL NullSession; | |
| 170 } RPC_CALL_ATTRIBUTES_V1_A; | |
| 171 | |
| 172 #ifdef UNICODE | |
| 173 #define RPC_CALL_ATTRIBUTES_V1 RPC_CALL_ATTRIBUTES_V1_W | |
| 174 #define RpcServerInqCallAttributes RpcServerInqCallAttributesW | |
| 175 #else | |
| 176 #define RPC_CALL_ATTRIBUTES_V1 RPC_CALL_ATTRIBUTES_V1_A | |
| 177 #define RpcServerInqCallAttributes RpcServerInqCallAttributesA | |
| 178 #endif | |
| 179 | |
| 180 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqCallAttributesW(RPC_BINDING_HANDLE ClientBinding,void *RpcCallAttributes); | |
| 181 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqCallAttributesA(RPC_BINDING_HANDLE ClientBinding,void *RpcCallAttributes); | |
| 182 | |
| 183 typedef RPC_CALL_ATTRIBUTES_V1 RPC_CALL_ATTRIBUTES; | |
| 184 | |
| 185 RPC_STATUS RPC_ENTRY I_RpcAsyncSetHandle(PRPC_MESSAGE Message,PRPC_ASYNC_STATE pAsync); | |
| 186 RPC_STATUS RPC_ENTRY I_RpcAsyncAbortCall(PRPC_ASYNC_STATE pAsync,unsigned long ExceptionCode); | |
| 187 int RPC_ENTRY I_RpcExceptionFilter(unsigned long ExceptionCode); | |
| 188 | |
| 189 #ifdef __cplusplus | |
| 190 } | |
| 191 #endif | |
| 192 | |
| 193 #ifdef __RPC_WIN64__ | |
| 194 #include <poppack.h> | |
| 195 #endif | |
| 196 #endif |
