ReactOS  0.4.13-dev-235-g7373cb3
rpcasync.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tagRPC_ERROR_ENUM_HANDLE
 
struct  tagBinaryParam
 
struct  tagRPC_EE_INFO_PARAM
 
struct  tagRPC_EXTENDED_ERROR_INFO
 
union  _RPC_ASYNC_NOTIFICATION_INFO
 
struct  _RPC_ASYNC_STATE
 

Macros

#define MaxNumberOfEEInfoParams   4
 
#define RPC_EEINFO_VERSION   1
 
#define EEInfoPreviousRecordsMissing   0x1
 
#define EEInfoNextRecordsMissing   0x2
 
#define EEInfoUseFileTime   0x4
 
#define EEInfoGCCOM   11
 
#define EEInfoGCFRS   12
 
#define RPC_ASYNC_VERSION_1_0   sizeof(RPC_ASYNC_STATE)
 
#define RPC_C_NOTIFY_ON_SEND_COMPLETE   0x1
 
#define RPC_C_INFINITE_TIMEOUT   INFINITE
 
#define RpcAsyncGetCallHandle(async)   (((PRPC_ASYNC_STATE)async)->RuntimeInfo)
 

Typedefs

typedef struct tagRPC_ERROR_ENUM_HANDLE RPC_ERROR_ENUM_HANDLE
 
typedef enum tagExtendedErrorParamTypes ExtendedErrorParamTypes
 
typedef struct tagBinaryParam BinaryParam
 
typedef struct tagRPC_EE_INFO_PARAM RPC_EE_INFO_PARAM
 
typedef struct tagRPC_EXTENDED_ERROR_INFO RPC_EXTENDED_ERROR_INFO
 
typedef enum _RPC_NOTIFICATION_TYPES RPC_NOTIFICATION_TYPES
 
typedef enum _RPC_ASYNC_EVENT RPC_ASYNC_EVENT
 
typedef void RPC_ENTRY RPCNOTIFICATION_ROUTINE(struct _RPC_ASYNC_STATE *, void *, RPC_ASYNC_EVENT)
 
typedef RPCNOTIFICATION_ROUTINEPFN_RPCNOTIFICATION_ROUTINE
 
typedef union _RPC_ASYNC_NOTIFICATION_INFO RPC_ASYNC_NOTIFICATION_INFO
 
typedef union _RPC_ASYNC_NOTIFICATION_INFOPRPC_ASYNC_NOTIFICATION_INFO
 
typedef struct _RPC_ASYNC_STATE RPC_ASYNC_STATE
 
typedef struct _RPC_ASYNC_STATEPRPC_ASYNC_STATE
 

Enumerations

enum  tagExtendedErrorParamTypes {
  eeptAnsiString = 1, eeptUnicodeString, eeptLongVal, eeptShortVal,
  eeptPointerVal, eeptNone, eeptBinary
}
 
enum  _RPC_NOTIFICATION_TYPES {
  RpcNotificationTypeNone, RpcNotificationTypeEvent, RpcNotificationTypeApc, RpcNotificationTypeIoc,
  RpcNotificationTypeHwnd, RpcNotificationTypeCallback
}
 
enum  _RPC_ASYNC_EVENT {
  RpcCallComplete, RpcSendComplete, RpcReceiveComplete, RpcClientDisconnect,
  RpcClientCancel
}
 

Functions

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncInitializeHandle (PRPC_ASYNC_STATE, unsigned int)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncRegisterInfo (PRPC_ASYNC_STATE)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncGetCallStatus (PRPC_ASYNC_STATE)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCompleteCall (PRPC_ASYNC_STATE, void *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncAbortCall (PRPC_ASYNC_STATE, ULONG)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCancelCall (PRPC_ASYNC_STATE, BOOL)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCleanupThread (DWORD)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorStartEnumeration (RPC_ERROR_ENUM_HANDLE *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNextRecord (RPC_ERROR_ENUM_HANDLE *, BOOL, RPC_EXTENDED_ERROR_INFO *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorEndEnumeration (RPC_ERROR_ENUM_HANDLE *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorResetEnumeration (RPC_ERROR_ENUM_HANDLE *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNumberOfRecords (RPC_ERROR_ENUM_HANDLE *, int *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorSaveErrorInfo (RPC_ERROR_ENUM_HANDLE *, PVOID *, SIZE_T *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorLoadErrorInfo (PVOID, SIZE_T, RPC_ERROR_ENUM_HANDLE *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorAddRecord (RPC_EXTENDED_ERROR_INFO *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorClearInformation (void)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcGetAuthorizationContextForClient (RPC_BINDING_HANDLE, BOOL, LPVOID, PLARGE_INTEGER, LUID, DWORD, PVOID, PVOID *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcFreeAuthorizationContext (PVOID *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockExclusive (RPC_BINDING_HANDLE, PVOID)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockShared (RPC_BINDING_HANDLE, PVOID)
 
RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncSetHandle (PRPC_MESSAGE, PRPC_ASYNC_STATE)
 
RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncAbortCall (PRPC_ASYNC_STATE, ULONG)
 
RPCRTAPI int RPC_ENTRY I_RpcExceptionFilter (ULONG)
 

Macro Definition Documentation

◆ EEInfoGCCOM

#define EEInfoGCCOM   11

Definition at line 71 of file rpcasync.h.

◆ EEInfoGCFRS

#define EEInfoGCFRS   12

Definition at line 72 of file rpcasync.h.

◆ EEInfoNextRecordsMissing

#define EEInfoNextRecordsMissing   0x2

Definition at line 68 of file rpcasync.h.

◆ EEInfoPreviousRecordsMissing

#define EEInfoPreviousRecordsMissing   0x1

Definition at line 67 of file rpcasync.h.

◆ EEInfoUseFileTime

#define EEInfoUseFileTime   0x4

Definition at line 69 of file rpcasync.h.

◆ MaxNumberOfEEInfoParams

#define MaxNumberOfEEInfoParams   4

Definition at line 44 of file rpcasync.h.

◆ RPC_ASYNC_VERSION_1_0

#define RPC_ASYNC_VERSION_1_0   sizeof(RPC_ASYNC_STATE)

Definition at line 92 of file rpcasync.h.

◆ RPC_C_INFINITE_TIMEOUT

#define RPC_C_INFINITE_TIMEOUT   INFINITE

Definition at line 142 of file rpcasync.h.

◆ RPC_C_NOTIFY_ON_SEND_COMPLETE

#define RPC_C_NOTIFY_ON_SEND_COMPLETE   0x1

Definition at line 141 of file rpcasync.h.

◆ RPC_EEINFO_VERSION

#define RPC_EEINFO_VERSION   1

Definition at line 45 of file rpcasync.h.

◆ RpcAsyncGetCallHandle

#define RpcAsyncGetCallHandle (   async)    (((PRPC_ASYNC_STATE)async)->RuntimeInfo)

Definition at line 159 of file rpcasync.h.

Typedef Documentation

◆ BinaryParam

◆ ExtendedErrorParamTypes

◆ PFN_RPCNOTIFICATION_ROUTINE

Definition at line 116 of file rpcasync.h.

◆ PRPC_ASYNC_NOTIFICATION_INFO

◆ PRPC_ASYNC_STATE

◆ RPC_ASYNC_EVENT

◆ RPC_ASYNC_NOTIFICATION_INFO

◆ RPC_ASYNC_STATE

◆ RPC_EE_INFO_PARAM

◆ RPC_ERROR_ENUM_HANDLE

◆ RPC_EXTENDED_ERROR_INFO

◆ RPC_NOTIFICATION_TYPES

◆ RPCNOTIFICATION_ROUTINE

typedef void RPC_ENTRY RPCNOTIFICATION_ROUTINE(struct _RPC_ASYNC_STATE *, void *, RPC_ASYNC_EVENT)

Definition at line 115 of file rpcasync.h.

Enumeration Type Documentation

◆ _RPC_ASYNC_EVENT

Enumerator
RpcCallComplete 
RpcSendComplete 
RpcReceiveComplete 
RpcClientDisconnect 
RpcClientCancel 

Definition at line 104 of file rpcasync.h.

◆ _RPC_NOTIFICATION_TYPES

Enumerator
RpcNotificationTypeNone 
RpcNotificationTypeEvent 
RpcNotificationTypeApc 
RpcNotificationTypeIoc 
RpcNotificationTypeHwnd 
RpcNotificationTypeCallback 

Definition at line 94 of file rpcasync.h.

◆ tagExtendedErrorParamTypes

Enumerator
eeptAnsiString 
eeptUnicodeString 
eeptLongVal 
eeptShortVal 
eeptPointerVal 
eeptNone 
eeptBinary 

Definition at line 33 of file rpcasync.h.

34 {
35  eeptAnsiString = 1,
40  eeptNone,
enum tagExtendedErrorParamTypes ExtendedErrorParamTypes

Function Documentation

◆ I_RpcAsyncAbortCall()

RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncAbortCall ( PRPC_ASYNC_STATE  ,
ULONG   
)

Definition at line 1977 of file rpc_message.c.

1978 {
1979  FIXME("(%p, %d): stub\n", pAsync, ExceptionCode);
1981 }
_Inout_ PIRP _In_ NTSTATUS ExceptionCode
Definition: cdprocs.h:1782
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_INVALID_ASYNC_HANDLE
Definition: winerror.h:1156

◆ I_RpcAsyncSetHandle()

RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncSetHandle ( PRPC_MESSAGE  ,
PRPC_ASYNC_STATE   
)

Definition at line 1949 of file rpc_message.c.

1950 {
1951  RpcBinding* bind = pMsg->Handle;
1952  RpcConnection *conn;
1953 
1954  TRACE("(%p, %p)\n", pMsg, pAsync);
1955 
1956  if (!bind || bind->server || !pMsg->ReservedForRuntime) return RPC_S_INVALID_BINDING;
1957 
1958  conn = pMsg->ReservedForRuntime;
1959  conn->async_state = pAsync;
1960 
1961  return RPC_S_OK;
1962 }
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013
#define TRACE(s)
Definition: solgame.cpp:4
RPC_ASYNC_STATE * async_state
Definition: rpc_binding.h:87
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by ndr_async_client_call().

◆ I_RpcExceptionFilter()

RPCRTAPI int RPC_ENTRY I_RpcExceptionFilter ( ULONG  )

Referenced by rpc_filter().

◆ RpcAsyncAbortCall()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncAbortCall ( PRPC_ASYNC_STATE  ,
ULONG   
)

Definition at line 136 of file rpc_async.c.

137 {
138  FIXME("(%p, %d/0x%x): stub\n", pAsync, ExceptionCode, ExceptionCode);
140 }
_Inout_ PIRP _In_ NTSTATUS ExceptionCode
Definition: cdprocs.h:1782
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_INVALID_ASYNC_HANDLE
Definition: winerror.h:1156

◆ RpcAsyncCancelCall()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCancelCall ( PRPC_ASYNC_STATE  ,
BOOL   
)

Definition at line 156 of file rpc_async.c.

157 {
158  FIXME("(%p, %s): stub\n", pAsync, fAbortCall ? "TRUE" : "FALSE");
160 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_INVALID_ASYNC_HANDLE
Definition: winerror.h:1156

◆ RpcAsyncCleanupThread()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCleanupThread ( DWORD  )

◆ RpcAsyncCompleteCall()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCompleteCall ( PRPC_ASYNC_STATE  ,
void  
)

Definition at line 111 of file rpc_async.c.

112 {
113  TRACE("(%p, %p)\n", pAsync, Reply);
114 
115  if (!valid_async_handle(pAsync))
117 
118  /* FIXME: check completed */
119 
120  return NdrpCompleteAsyncClientCall(pAsync, Reply);
121 }
RPC_STATUS NdrpCompleteAsyncClientCall(RPC_ASYNC_STATE *pAsync, void *Reply)
#define TRACE(s)
Definition: solgame.cpp:4
#define RPC_S_INVALID_ASYNC_HANDLE
Definition: winerror.h:1156
static BOOL valid_async_handle(PRPC_ASYNC_STATE pAsync)
Definition: rpc_async.c:38

◆ RpcAsyncGetCallStatus()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncGetCallStatus ( PRPC_ASYNC_STATE  )

Definition at line 92 of file rpc_async.c.

93 {
94  FIXME("(%p): stub\n", pAsync);
96 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_INVALID_ASYNC_HANDLE
Definition: winerror.h:1156

Referenced by test_RpcAsyncGetCallStatus().

◆ RpcAsyncInitializeHandle()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncInitializeHandle ( PRPC_ASYNC_STATE  ,
unsigned int   
)

Definition at line 57 of file rpc_async.c.

58 {
59  TRACE("(%p, %d)\n", pAsync, Size);
60 
61  if (Size != sizeof(*pAsync))
62  {
63  ERR("invalid Size %d\n", Size);
65  }
66 
67  pAsync->Size = sizeof(*pAsync);
68  pAsync->Signature = RPC_ASYNC_SIGNATURE;
69  pAsync->Lock = 0;
70  pAsync->Flags = 0;
71  pAsync->StubInfo = NULL;
72  pAsync->RuntimeInfo = NULL;
73  memset(pAsync->Reserved, 0, sizeof(*pAsync) - FIELD_OFFSET(RPC_ASYNC_STATE, Reserved));
74 
75  return RPC_S_OK;
76 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
#define RPC_ASYNC_SIGNATURE
Definition: rpc_async.c:36
smooth NULL
Definition: ftsmooth.c:416
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
#define TRACE(s)
Definition: solgame.cpp:4
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
#define ERR(fmt,...)
Definition: debug.h:109
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:254
#define memset(x, y, z)
Definition: compat.h:39
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by test_RpcAsyncGetCallStatus(), and test_RpcAsyncInitializeHandle().

◆ RpcAsyncRegisterInfo()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncRegisterInfo ( PRPC_ASYNC_STATE  )

◆ RpcErrorAddRecord()

◆ RpcErrorClearInformation()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorClearInformation ( void  )

◆ RpcErrorEndEnumeration()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorEndEnumeration ( RPC_ERROR_ENUM_HANDLE )

Definition at line 891 of file rpcrt4_main.c.

892 {
893  FIXME("(%p): stub\n", EnumHandle);
894  return RPC_S_OK;
895 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_OK
Definition: rpcnterr.h:22

◆ RpcErrorGetNextRecord()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNextRecord ( RPC_ERROR_ENUM_HANDLE ,
BOOL  ,
RPC_EXTENDED_ERROR_INFO  
)

Definition at line 918 of file rpcrt4_main.c.

919 {
920  FIXME("(%p %x %p): stub\n", EnumHandle, CopyStrings, ErrorInfo);
921  return RPC_S_ENTRY_NOT_FOUND;
922 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_ENTRY_NOT_FOUND
Definition: winerror.h:1069

◆ RpcErrorGetNumberOfRecords()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNumberOfRecords ( RPC_ERROR_ENUM_HANDLE ,
int  
)

◆ RpcErrorLoadErrorInfo()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorLoadErrorInfo ( PVOID  ,
SIZE_T  ,
RPC_ERROR_ENUM_HANDLE  
)

◆ RpcErrorResetEnumeration()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorResetEnumeration ( RPC_ERROR_ENUM_HANDLE )

◆ RpcErrorSaveErrorInfo()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorSaveErrorInfo ( RPC_ERROR_ENUM_HANDLE ,
PVOID ,
SIZE_T  
)

◆ RpcErrorStartEnumeration()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorStartEnumeration ( RPC_ERROR_ENUM_HANDLE )

Definition at line 882 of file rpcrt4_main.c.

883 {
884  FIXME("(%p): stub\n", EnumHandle);
885  return RPC_S_ENTRY_NOT_FOUND;
886 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_ENTRY_NOT_FOUND
Definition: winerror.h:1069

◆ RpcFreeAuthorizationContext()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcFreeAuthorizationContext ( PVOID )

◆ RpcGetAuthorizationContextForClient()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcGetAuthorizationContextForClient ( RPC_BINDING_HANDLE  ,
BOOL  ,
LPVOID  ,
PLARGE_INTEGER  ,
LUID  ,
DWORD  ,
PVOID  ,
PVOID  
)

◆ RpcSsContextLockExclusive()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockExclusive ( RPC_BINDING_HANDLE  ,
PVOID   
)

◆ RpcSsContextLockShared()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockShared ( RPC_BINDING_HANDLE  ,
PVOID   
)