| 1 | /** | 
 
 
 
 
 | 2 | * This file has no copyright assigned and is placed in the Public Domain. | 
 
 
 
 
 | 3 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 
 
 
 
 | 5 | */ | 
 
 
 
 
 | 6 | #ifndef __RPCASYNC_H__ | 
 
 
 
 
 | 7 | #define __RPCASYNC_H__ | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | #include <_mingw_unicode.h> | 
 
 
 
 
 | 10 | #ifdef __RPC_WIN64__ | 
 
 
 
 
 | 11 | #include <pshpack8.h> | 
 
 
 
 
 | 12 | #endif | 
 
 
 
 
 | 13 |  | 
 
 
 
 
 | 14 | #ifdef __cplusplus | 
 
 
 
 
 | 15 | extern "C" { | 
 
 
 
 
 | 16 | #endif | 
 
 
 
 
 | 17 |  | 
 
 
 
 
 | 18 | #define RPC_ASYNC_VERSION_1_0 sizeof(RPC_ASYNC_STATE) | 
 
 
 
 
 | 19 |  | 
 
 
 
 
 | 20 | typedef enum _RPC_NOTIFICATION_TYPES { | 
 
 
 
 
 | 21 | RpcNotificationTypeNone,RpcNotificationTypeEvent,RpcNotificationTypeApc,RpcNotificationTypeIoc,RpcNotificationTypeHwnd, | 
 
 
 
 
 | 22 | RpcNotificationTypeCallback | 
 
 
 
 
 | 23 | } RPC_NOTIFICATION_TYPES; | 
 
 
 
 
 | 24 |  | 
 
 
 
 
 | 25 | typedef enum _RPC_ASYNC_EVENT { | 
 
 
 
 
 | 26 | RpcCallComplete,RpcSendComplete,RpcReceiveComplete | 
 
 
 
 
 | 27 | } RPC_ASYNC_EVENT; | 
 
 
 
 
 | 28 |  | 
 
 
 
 
 | 29 | struct _RPC_ASYNC_STATE; | 
 
 
 
 
 | 30 |  | 
 
 
 
 
 | 31 | typedef void RPC_ENTRY RPCNOTIFICATION_ROUTINE(struct _RPC_ASYNC_STATE *pAsync,void *Context,RPC_ASYNC_EVENT Event); | 
 
 
 
 
 | 32 | typedef RPCNOTIFICATION_ROUTINE *PFN_RPCNOTIFICATION_ROUTINE; | 
 
 
 
 
 | 33 |  | 
 
 
 
 
 | 34 | typedef struct _RPC_ASYNC_STATE { | 
 
 
 
 
 | 35 | unsigned int Size; | 
 
 
 
 
 | 36 | unsigned __LONG32 Signature; | 
 
 
 
 
 | 37 | __LONG32 Lock; | 
 
 
 
 
 | 38 | unsigned __LONG32 Flags; | 
 
 
 
 
 | 39 | void *StubInfo; | 
 
 
 
 
 | 40 | void *UserInfo; | 
 
 
 
 
 | 41 | void *RuntimeInfo; | 
 
 
 
 
 | 42 | RPC_ASYNC_EVENT Event; | 
 
 
 
 
 | 43 | RPC_NOTIFICATION_TYPES NotificationType; | 
 
 
 
 
 | 44 | union { | 
 
 
 
 
 | 45 | struct { | 
 
 
 
 
 | 46 | PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine; | 
 
 
 
 
 | 47 | HANDLE hThread; | 
 
 
 
 
 | 48 | } APC; | 
 
 
 
 
 | 49 | struct { | 
 
 
 
 
 | 50 | HANDLE hIOPort; | 
 
 
 
 
 | 51 | DWORD dwNumberOfBytesTransferred; | 
 
 
 
 
 | 52 | DWORD_PTR dwCompletionKey; | 
 
 
 
 
 | 53 | LPOVERLAPPED lpOverlapped; | 
 
 
 
 
 | 54 | } IOC; | 
 
 
 
 
 | 55 | struct { | 
 
 
 
 
 | 56 | HWND hWnd; | 
 
 
 
 
 | 57 | UINT Msg; | 
 
 
 
 
 | 58 | } HWND; | 
 
 
 
 
 | 59 | HANDLE hEvent; | 
 
 
 
 
 | 60 | PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine; | 
 
 
 
 
 | 61 | } u; | 
 
 
 
 
 | 62 | LONG_PTR Reserved[4]; | 
 
 
 
 
 | 63 | } RPC_ASYNC_STATE,*PRPC_ASYNC_STATE; | 
 
 
 
 
 | 64 |  | 
 
 
 
 
 | 65 | #define RPC_C_NOTIFY_ON_SEND_COMPLETE 0x1 | 
 
 
 
 
 | 66 | #define RPC_C_INFINITE_TIMEOUT INFINITE | 
 
 
 
 
 | 67 |  | 
 
 
 
 
 | 68 | #define RpcAsyncGetCallHandle(pAsync) (((PRPC_ASYNC_STATE) pAsync)->RuntimeInfo) | 
 
 
 
 
 | 69 |  | 
 
 
 
 
 | 70 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncInitializeHandle(PRPC_ASYNC_STATE pAsync,unsigned int Size); | 
 
 
 
 
 | 71 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncRegisterInfo(PRPC_ASYNC_STATE pAsync); | 
 
 
 
 
 | 72 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncGetCallStatus(PRPC_ASYNC_STATE pAsync); | 
 
 
 
 
 | 73 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCompleteCall(PRPC_ASYNC_STATE pAsync,void *Reply); | 
 
 
 
 
 | 74 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncAbortCall(PRPC_ASYNC_STATE pAsync,unsigned __LONG32 ExceptionCode); | 
 
 
 
 
 | 75 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCancelCall(PRPC_ASYNC_STATE pAsync,WINBOOL fAbort); | 
 
 
 
 
 | 76 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCleanupThread(DWORD dwTimeout); | 
 
 
 
 
 | 77 |  | 
 
 
 
 
 | 78 | typedef enum tagExtendedErrorParamTypes { | 
 
 
 
 
 | 79 | eeptAnsiString = 1,eeptUnicodeString,eeptLongVal,eeptShortVal,eeptPointerVal,eeptNone,eeptBinary | 
 
 
 
 
 | 80 | } ExtendedErrorParamTypes; | 
 
 
 
 
 | 81 |  | 
 
 
 
 
 | 82 | #define MaxNumberOfEEInfoParams 4 | 
 
 
 
 
 | 83 | #define RPC_EEINFO_VERSION 1 | 
 
 
 
 
 | 84 |  | 
 
 
 
 
 | 85 | typedef struct tagBinaryParam { | 
 
 
 
 
 | 86 | void *Buffer; | 
 
 
 
 
 | 87 | short Size; | 
 
 
 
 
 | 88 | } BinaryParam; | 
 
 
 
 
 | 89 |  | 
 
 
 
 
 | 90 | typedef struct tagRPC_EE_INFO_PARAM { | 
 
 
 
 
 | 91 | ExtendedErrorParamTypes ParameterType; | 
 
 
 
 
 | 92 | union { | 
 
 
 
 
 | 93 | LPSTR AnsiString; | 
 
 
 
 
 | 94 | LPWSTR UnicodeString; | 
 
 
 
 
 | 95 | __LONG32 LVal; | 
 
 
 
 
 | 96 | short SVal; | 
 
 
 
 
 | 97 | ULONGLONG PVal; | 
 
 
 
 
 | 98 | BinaryParam BVal; | 
 
 
 
 
 | 99 | } u; | 
 
 
 
 
 | 100 | } RPC_EE_INFO_PARAM; | 
 
 
 
 
 | 101 |  | 
 
 
 
 
 | 102 | #define EEInfoPreviousRecordsMissing 1 | 
 
 
 
 
 | 103 | #define EEInfoNextRecordsMissing 2 | 
 
 
 
 
 | 104 | #define EEInfoUseFileTime 4 | 
 
 
 
 
 | 105 |  | 
 
 
 
 
 | 106 | #define EEInfoGCCOM 11 | 
 
 
 
 
 | 107 | #define EEInfoGCFRS 12 | 
 
 
 
 
 | 108 |  | 
 
 
 
 
 | 109 | typedef struct tagRPC_EXTENDED_ERROR_INFO { | 
 
 
 
 
 | 110 | ULONG Version; | 
 
 
 
 
 | 111 | LPWSTR ComputerName; | 
 
 
 
 
 | 112 | ULONG ProcessID; | 
 
 
 
 
 | 113 | union { | 
 
 
 
 
 | 114 | SYSTEMTIME SystemTime; | 
 
 
 
 
 | 115 | FILETIME FileTime; | 
 
 
 
 
 | 116 | } u; | 
 
 
 
 
 | 117 | ULONG GeneratingComponent; | 
 
 
 
 
 | 118 | ULONG Status; | 
 
 
 
 
 | 119 | USHORT DetectionLocation; | 
 
 
 
 
 | 120 | USHORT Flags; | 
 
 
 
 
 | 121 | int NumberOfParameters; | 
 
 
 
 
 | 122 | RPC_EE_INFO_PARAM Parameters[MaxNumberOfEEInfoParams]; | 
 
 
 
 
 | 123 | } RPC_EXTENDED_ERROR_INFO; | 
 
 
 
 
 | 124 |  | 
 
 
 
 
 | 125 | typedef struct tagRPC_ERROR_ENUM_HANDLE { | 
 
 
 
 
 | 126 | ULONG Signature; | 
 
 
 
 
 | 127 | void *CurrentPos; | 
 
 
 
 
 | 128 | void *Head; | 
 
 
 
 
 | 129 | } RPC_ERROR_ENUM_HANDLE; | 
 
 
 
 
 | 130 |  | 
 
 
 
 
 | 131 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorStartEnumeration(RPC_ERROR_ENUM_HANDLE *EnumHandle); | 
 
 
 
 
 | 132 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNextRecord(RPC_ERROR_ENUM_HANDLE *EnumHandle,WINBOOL CopyStrings,RPC_EXTENDED_ERROR_INFO *ErrorInfo); | 
 
 
 
 
 | 133 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorEndEnumeration(RPC_ERROR_ENUM_HANDLE *EnumHandle); | 
 
 
 
 
 | 134 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorResetEnumeration(RPC_ERROR_ENUM_HANDLE *EnumHandle); | 
 
 
 
 
 | 135 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNumberOfRecords(RPC_ERROR_ENUM_HANDLE *EnumHandle,int *Records); | 
 
 
 
 
 | 136 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorSaveErrorInfo(RPC_ERROR_ENUM_HANDLE *EnumHandle,PVOID *ErrorBlob,size_t *BlobSize); | 
 
 
 
 
 | 137 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorLoadErrorInfo(PVOID ErrorBlob,size_t BlobSize,RPC_ERROR_ENUM_HANDLE *EnumHandle); | 
 
 
 
 
 | 138 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorAddRecord(RPC_EXTENDED_ERROR_INFO *ErrorInfo); | 
 
 
 
 
 | 139 | RPCRTAPI void RPC_ENTRY RpcErrorClearInformation(void); | 
 
 
 
 
 | 140 | 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); | 
 
 
 
 
 | 141 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcFreeAuthorizationContext(PVOID *pAuthzClientContext); | 
 
 
 
 
 | 142 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockExclusive(RPC_BINDING_HANDLE ServerBindingHandle,PVOID UserContext); | 
 
 
 
 
 | 143 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockShared(RPC_BINDING_HANDLE ServerBindingHandle,PVOID UserContext); | 
 
 
 
 
 | 144 |  | 
 
 
 
 
 | 145 | #define RPC_CALL_ATTRIBUTES_VERSION (1) | 
 
 
 
 
 | 146 | #define RPC_QUERY_SERVER_PRINCIPAL_NAME (2) | 
 
 
 
 
 | 147 | #define RPC_QUERY_CLIENT_PRINCIPAL_NAME (4) | 
 
 
 
 
 | 148 |  | 
 
 
 
 
 | 149 | typedef struct tagRPC_CALL_ATTRIBUTES_V1_W { | 
 
 
 
 
 | 150 | unsigned int Version; | 
 
 
 
 
 | 151 | unsigned __LONG32 Flags; | 
 
 
 
 
 | 152 | unsigned __LONG32 ServerPrincipalNameBufferLength; | 
 
 
 
 
 | 153 | unsigned short *ServerPrincipalName; | 
 
 
 
 
 | 154 | unsigned __LONG32 ClientPrincipalNameBufferLength; | 
 
 
 
 
 | 155 | unsigned short *ClientPrincipalName; | 
 
 
 
 
 | 156 | unsigned __LONG32 AuthenticationLevel; | 
 
 
 
 
 | 157 | unsigned __LONG32 AuthenticationService; | 
 
 
 
 
 | 158 | WINBOOL NullSession; | 
 
 
 
 
 | 159 | } RPC_CALL_ATTRIBUTES_V1_W; | 
 
 
 
 
 | 160 |  | 
 
 
 
 
 | 161 | typedef struct tagRPC_CALL_ATTRIBUTES_V1_A { | 
 
 
 
 
 | 162 | unsigned int Version; | 
 
 
 
 
 | 163 | unsigned __LONG32 Flags; | 
 
 
 
 
 | 164 | unsigned __LONG32 ServerPrincipalNameBufferLength; | 
 
 
 
 
 | 165 | unsigned char *ServerPrincipalName; | 
 
 
 
 
 | 166 | unsigned __LONG32 ClientPrincipalNameBufferLength; | 
 
 
 
 
 | 167 | unsigned char *ClientPrincipalName; | 
 
 
 
 
 | 168 | unsigned __LONG32 AuthenticationLevel; | 
 
 
 
 
 | 169 | unsigned __LONG32 AuthenticationService; | 
 
 
 
 
 | 170 | WINBOOL NullSession; | 
 
 
 
 
 | 171 | } RPC_CALL_ATTRIBUTES_V1_A; | 
 
 
 
 
 | 172 |  | 
 
 
 
 
 | 173 | #define RPC_CALL_ATTRIBUTES_V1 __MINGW_NAME_UAW(RPC_CALL_ATTRIBUTES_V1) | 
 
 
 
 
 | 174 | #define RpcServerInqCallAttributes __MINGW_NAME_AW(RpcServerInqCallAttributes) | 
 
 
 
 
 | 175 |  | 
 
 
 
 
 | 176 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqCallAttributesW(RPC_BINDING_HANDLE ClientBinding,void *RpcCallAttributes); | 
 
 
 
 
 | 177 | RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqCallAttributesA(RPC_BINDING_HANDLE ClientBinding,void *RpcCallAttributes); | 
 
 
 
 
 | 178 |  | 
 
 
 
 
 | 179 | typedef RPC_CALL_ATTRIBUTES_V1 RPC_CALL_ATTRIBUTES; | 
 
 
 
 
 | 180 |  | 
 
 
 
 
 | 181 | RPC_STATUS RPC_ENTRY I_RpcAsyncSetHandle(PRPC_MESSAGE Message,PRPC_ASYNC_STATE pAsync); | 
 
 
 
 
 | 182 | RPC_STATUS RPC_ENTRY I_RpcAsyncAbortCall(PRPC_ASYNC_STATE pAsync,unsigned __LONG32 ExceptionCode); | 
 
 
 
 
 | 183 | int RPC_ENTRY I_RpcExceptionFilter(unsigned __LONG32 ExceptionCode); | 
 
 
 
 
 | 184 |  | 
 
 
 
 
 | 185 | typedef union _RPC_ASYNC_NOTIFICATION_INFO { | 
 
 
 
 
 | 186 | struct { | 
 
 
 
 
 | 187 | PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine; | 
 
 
 
 
 | 188 | HANDLE                      hThread; | 
 
 
 
 
 | 189 | } APC; | 
 
 
 
 
 | 190 | struct { | 
 
 
 
 
 | 191 | HANDLE       hIOPort; | 
 
 
 
 
 | 192 | DWORD        dwNumberOfBytesTransferred; | 
 
 
 
 
 | 193 | DWORD_PTR    dwCompletionKey; | 
 
 
 
 
 | 194 | LPOVERLAPPED lpOverlapped; | 
 
 
 
 
 | 195 | } IOC; | 
 
 
 
 
 | 196 | struct { | 
 
 
 
 
 | 197 | HWND hWnd; | 
 
 
 
 
 | 198 | UINT Msg; | 
 
 
 
 
 | 199 | } HWND; | 
 
 
 
 
 | 200 | HANDLE                      hEvent; | 
 
 
 
 
 | 201 | PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine; | 
 
 
 
 
 | 202 | } RPC_ASYNC_NOTIFICATION_INFO, *PRPC_ASYNC_NOTIFICATION_INFO; | 
 
 
 
 
 | 203 |  | 
 
 
 
 
 | 204 | RPC_STATUS RPC_ENTRY RpcBindingBind( | 
 
 
 
 
 | 205 | PRPC_ASYNC_STATE pAsync, | 
 
 
 
 
 | 206 | RPC_BINDING_HANDLE Binding, | 
 
 
 
 
 | 207 | RPC_IF_HANDLE IfSpec | 
 
 
 
 
 | 208 | ); | 
 
 
 
 
 | 209 |  | 
 
 
 
 
 | 210 | RPC_STATUS RPC_ENTRY RpcBindingUnbind( | 
 
 
 
 
 | 211 | RPC_BINDING_HANDLE Binding | 
 
 
 
 
 | 212 | ); | 
 
 
 
 
 | 213 |  | 
 
 
 
 
 | 214 | typedef enum _RpcCallType { | 
 
 
 
 
 | 215 | rctInvalid, | 
 
 
 
 
 | 216 | rctNormal, | 
 
 
 
 
 | 217 | rctTraining, | 
 
 
 
 
 | 218 | rctGuaranteed | 
 
 
 
 
 | 219 | } RpcCallType; | 
 
 
 
 
 | 220 |  | 
 
 
 
 
 | 221 | typedef enum _RpcLocalAddressFormat { | 
 
 
 
 
 | 222 | rlafInvalid, | 
 
 
 
 
 | 223 | rlafIPv4, | 
 
 
 
 
 | 224 | rlafIPv6 | 
 
 
 
 
 | 225 | } RpcLocalAddressFormat; | 
 
 
 
 
 | 226 |  | 
 
 
 
 
 | 227 | typedef enum _RPC_NOTIFICATIONS { | 
 
 
 
 
 | 228 | RpcNotificationCallNone           = 0, | 
 
 
 
 
 | 229 | RpcNotificationClientDisconnect   = 1, | 
 
 
 
 
 | 230 | RpcNotificationCallCancel         = 2 | 
 
 
 
 
 | 231 | } RPC_NOTIFICATIONS; | 
 
 
 
 
 | 232 |  | 
 
 
 
 
 | 233 | typedef enum _RpcCallClientLocality { | 
 
 
 
 
 | 234 | rcclInvalid, | 
 
 
 
 
 | 235 | rcclLocal, | 
 
 
 
 
 | 236 | rcclRemote, | 
 
 
 
 
 | 237 | rcclClientUnknownLocality | 
 
 
 
 
 | 238 | } RpcCallClientLocality; | 
 
 
 
 
 | 239 |  | 
 
 
 
 
 | 240 | RPC_STATUS RPC_ENTRY RpcServerSubscribeForNotification( | 
 
 
 
 
 | 241 | RPC_BINDING_HANDLE Binding, | 
 
 
 
 
 | 242 | DWORD Notification, | 
 
 
 
 
 | 243 | RPC_NOTIFICATION_TYPES NotificationType, | 
 
 
 
 
 | 244 | RPC_ASYNC_NOTIFICATION_INFO *NotificationInfo | 
 
 
 
 
 | 245 | ); | 
 
 
 
 
 | 246 |  | 
 
 
 
 
 | 247 | RPC_STATUS RPC_ENTRY RpcServerUnsubscribeForNotification( | 
 
 
 
 
 | 248 | RPC_BINDING_HANDLE Binding, | 
 
 
 
 
 | 249 | RPC_NOTIFICATIONS Notification, | 
 
 
 
 
 | 250 | unsigned __LONG32 *NotificationsQueued | 
 
 
 
 
 | 251 | ); | 
 
 
 
 
 | 252 |  | 
 
 
 
 
 | 253 | #if (_WIN32_WINNT >= 0x0600) | 
 
 
 
 
 | 254 |  | 
 
 
 
 
 | 255 | typedef struct tagRPC_CALL_LOCAL_ADDRESS_V1_A { | 
 
 
 
 
 | 256 | unsigned int          Version; | 
 
 
 
 
 | 257 | void                  *Buffer; | 
 
 
 
 
 | 258 | unsigned __LONG32     BufferSize; | 
 
 
 
 
 | 259 | RpcLocalAddressFormat AddressFormat; | 
 
 
 
 
 | 260 | } RPC_CALL_LOCAL_ADDRESS_V1_A, RPC_CALL_LOCAL_ADDRESS_A; | 
 
 
 
 
 | 261 |  | 
 
 
 
 
 | 262 | typedef struct tagRPC_CALL_LOCAL_ADDRESS_V1_W { | 
 
 
 
 
 | 263 | unsigned int          Version; | 
 
 
 
 
 | 264 | void                  *Buffer; | 
 
 
 
 
 | 265 | unsigned __LONG32     BufferSize; | 
 
 
 
 
 | 266 | RpcLocalAddressFormat AddressFormat; | 
 
 
 
 
 | 267 | } RPC_CALL_LOCAL_ADDRESS_V1_W, RPC_CALL_LOCAL_ADDRESS_W; | 
 
 
 
 
 | 268 |  | 
 
 
 
 
 | 269 | #define RPC_CALL_LOCAL_ADDRESS_V1 __MINGW_NAME_AW(RPC_CALL_LOCAL_ADDRESS_V1_) | 
 
 
 
 
 | 270 | #define RPC_CALL_LOCAL_ADDRESS __MINGW_NAME_AW(RPC_CALL_LOCAL_ADDRESS_) | 
 
 
 
 
 | 271 |  | 
 
 
 
 
 | 272 | typedef struct tagRPC_CALL_ATTRIBUTES_V2A { | 
 
 
 
 
 | 273 | unsigned int           Version; | 
 
 
 
 
 | 274 | unsigned __LONG32      Flags; | 
 
 
 
 
 | 275 | unsigned __LONG32      ServerPrincipalNameBufferLength; | 
 
 
 
 
 | 276 | unsigned short         *ServerPrincipalName; | 
 
 
 
 
 | 277 | unsigned __LONG32      ClientPrincipalNameBufferLength; | 
 
 
 
 
 | 278 | unsigned short         *ClientPrincipalName; | 
 
 
 
 
 | 279 | unsigned __LONG32      AuthenticationLevel; | 
 
 
 
 
 | 280 | unsigned __LONG32      AuthenticationService; | 
 
 
 
 
 | 281 | WINBOOL                NullSession; | 
 
 
 
 
 | 282 | WINBOOL                KernelMode; | 
 
 
 
 
 | 283 | unsigned __LONG32      ProtocolSequence; | 
 
 
 
 
 | 284 | RpcCallClientLocality  IsClientLocal; | 
 
 
 
 
 | 285 | HANDLE                 ClientPID; | 
 
 
 
 
 | 286 | unsigned __LONG32      CallStatus; | 
 
 
 
 
 | 287 | RpcCallType            CallType; | 
 
 
 
 
 | 288 | RPC_CALL_LOCAL_ADDRESS_A *CallLocalAddress; | 
 
 
 
 
 | 289 | unsigned short         OpNum; | 
 
 
 
 
 | 290 | UUID                   InterfaceUuid; | 
 
 
 
 
 | 291 | } RPC_CALL_ATTRIBUTES_V2_A, RPC_CALL_ATTRIBUTES_A; | 
 
 
 
 
 | 292 |  | 
 
 
 
 
 | 293 | typedef struct tagRPC_CALL_ATTRIBUTES_V2W { | 
 
 
 
 
 | 294 | unsigned int           Version; | 
 
 
 
 
 | 295 | unsigned __LONG32      Flags; | 
 
 
 
 
 | 296 | unsigned __LONG32      ServerPrincipalNameBufferLength; | 
 
 
 
 
 | 297 | unsigned short         *ServerPrincipalName; | 
 
 
 
 
 | 298 | unsigned __LONG32      ClientPrincipalNameBufferLength; | 
 
 
 
 
 | 299 | unsigned short         *ClientPrincipalName; | 
 
 
 
 
 | 300 | unsigned __LONG32      AuthenticationLevel; | 
 
 
 
 
 | 301 | unsigned __LONG32      AuthenticationService; | 
 
 
 
 
 | 302 | WINBOOL                NullSession; | 
 
 
 
 
 | 303 | WINBOOL                KernelMode; | 
 
 
 
 
 | 304 | unsigned __LONG32      ProtocolSequence; | 
 
 
 
 
 | 305 | RpcCallClientLocality  IsClientLocal; | 
 
 
 
 
 | 306 | HANDLE                 ClientPID; | 
 
 
 
 
 | 307 | unsigned __LONG32      CallStatus; | 
 
 
 
 
 | 308 | RpcCallType            CallType; | 
 
 
 
 
 | 309 | RPC_CALL_LOCAL_ADDRESS_W *CallLocalAddress; | 
 
 
 
 
 | 310 | unsigned short         OpNum; | 
 
 
 
 
 | 311 | UUID                   InterfaceUuid; | 
 
 
 
 
 | 312 | } RPC_CALL_ATTRIBUTES_V2_W, RPC_CALL_ATTRIBUTES_W; | 
 
 
 
 
 | 313 |  | 
 
 
 
 
 | 314 | #define RPC_CALL_ATTRIBUTES_V2 __MINGW_NAME_AW(RPC_CALL_ATTRIBUTES_V2_) | 
 
 
 
 
 | 315 |  | 
 
 
 
 
 | 316 | RPC_STATUS RPC_ENTRY RpcDiagnoseError( | 
 
 
 
 
 | 317 | RPC_BINDING_HANDLE BindingHandle, | 
 
 
 
 
 | 318 | RPC_IF_HANDLE IfSpec, | 
 
 
 
 
 | 319 | RPC_STATUS RpcStatus, | 
 
 
 
 
 | 320 | RPC_ERROR_ENUM_HANDLE *EnumHandle, | 
 
 
 
 
 | 321 | ULONG Options, | 
 
 
 
 
 | 322 | HWND ParentWindow | 
 
 
 
 
 | 323 | ); | 
 
 
 
 
 | 324 | #endif /*(_WIN32_WINNT >= 0x0600)*/ | 
 
 
 
 
 | 325 |  | 
 
 
 
 
 | 326 | #ifdef __cplusplus | 
 
 
 
 
 | 327 | } | 
 
 
 
 
 | 328 | #endif | 
 
 
 
 
 | 329 |  | 
 
 
 
 
 | 330 | #ifdef __RPC_WIN64__ | 
 
 
 
 
 | 331 | #include <poppack.h> | 
 
 
 
 
 | 332 | #endif | 
 
 
 
 
 | 333 | #endif |