ReactOS 0.4.15-dev-7842-g558ab78
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.

105{
@ RpcCallComplete
Definition: rpcasync.h:106
@ RpcClientCancel
Definition: rpcasync.h:110
@ RpcClientDisconnect
Definition: rpcasync.h:109
@ RpcSendComplete
Definition: rpcasync.h:107
@ RpcReceiveComplete
Definition: rpcasync.h:108
enum _RPC_ASYNC_EVENT RPC_ASYNC_EVENT

◆ _RPC_NOTIFICATION_TYPES

Enumerator
RpcNotificationTypeNone 
RpcNotificationTypeEvent 
RpcNotificationTypeApc 
RpcNotificationTypeIoc 
RpcNotificationTypeHwnd 
RpcNotificationTypeCallback 

Definition at line 94 of file rpcasync.h.

95{
@ RpcNotificationTypeIoc
Definition: rpcasync.h:99
@ RpcNotificationTypeHwnd
Definition: rpcasync.h:100
@ RpcNotificationTypeApc
Definition: rpcasync.h:98
@ RpcNotificationTypeEvent
Definition: rpcasync.h:97
@ RpcNotificationTypeNone
Definition: rpcasync.h:96
@ RpcNotificationTypeCallback
Definition: rpcasync.h:101
enum _RPC_NOTIFICATION_TYPES RPC_NOTIFICATION_TYPES

◆ tagExtendedErrorParamTypes

Enumerator
eeptAnsiString 
eeptUnicodeString 
eeptLongVal 
eeptShortVal 
eeptPointerVal 
eeptNone 
eeptBinary 

Definition at line 33 of file rpcasync.h.

34{
enum tagExtendedErrorParamTypes ExtendedErrorParamTypes
@ eeptLongVal
Definition: rpcasync.h:37
@ eeptUnicodeString
Definition: rpcasync.h:36
@ eeptAnsiString
Definition: rpcasync.h:35
@ eeptNone
Definition: rpcasync.h:40
@ eeptBinary
Definition: rpcasync.h:41
@ eeptPointerVal
Definition: rpcasync.h:39
@ eeptShortVal
Definition: rpcasync.h:38

Function Documentation

◆ I_RpcAsyncAbortCall()

RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncAbortCall ( PRPC_ASYNC_STATE  pAsync,
ULONG  ExceptionCode 
)

Definition at line 1977 of file rpc_message.c.

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

◆ I_RpcAsyncSetHandle()

RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncSetHandle ( PRPC_MESSAGE  pMsg,
PRPC_ASYNC_STATE  pAsync 
)

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}
#define RPC_S_OK
Definition: rpcnterr.h:22
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
#define TRACE(s)
Definition: solgame.cpp:4
void * ReservedForRuntime
Definition: rpcdcep.h:45
RPC_BINDING_HANDLE Handle
Definition: rpcdcep.h:38
RPC_ASYNC_STATE * async_state
Definition: rpc_binding.h:87
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013

Referenced by do_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  pAsync,
ULONG  ExceptionCode 
)

Definition at line 144 of file rpc_async.c.

145{
146 FIXME("(%p, %d/0x%x): stub\n", pAsync, ExceptionCode, ExceptionCode);
148}

◆ RpcAsyncCancelCall()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCancelCall ( PRPC_ASYNC_STATE  pAsync,
BOOL  fAbortCall 
)

Definition at line 164 of file rpc_async.c.

165{
166 FIXME("(%p, %s): stub\n", pAsync, fAbortCall ? "TRUE" : "FALSE");
168}

◆ RpcAsyncCleanupThread()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCleanupThread ( DWORD  )

◆ RpcAsyncCompleteCall()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCompleteCall ( PRPC_ASYNC_STATE  pAsync,
void Reply 
)

Definition at line 111 of file rpc_async.c.

112{
113 struct async_call_data *data;
114
115 TRACE("(%p, %p)\n", pAsync, Reply);
116
117 if (!valid_async_handle(pAsync))
119
120 /* FIXME: check completed */
121
122 TRACE("pAsync %p, pAsync->StubInfo %p\n", pAsync, pAsync->StubInfo);
123
124 data = pAsync->StubInfo;
125 if (data->pStubMsg->IsClient)
126 return NdrpCompleteAsyncClientCall(pAsync, Reply);
127
128 return NdrpCompleteAsyncServerCall(pAsync, Reply);
129}
static BOOL valid_async_handle(PRPC_ASYNC_STATE pAsync)
Definition: rpc_async.c:38
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
RPC_STATUS NdrpCompleteAsyncClientCall(RPC_ASYNC_STATE *pAsync, void *Reply)
RPC_STATUS NdrpCompleteAsyncServerCall(RPC_ASYNC_STATE *pAsync, void *Reply)
void * StubInfo
Definition: rpcasync.h:150

◆ RpcAsyncGetCallStatus()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncGetCallStatus ( PRPC_ASYNC_STATE  pAsync)

Definition at line 92 of file rpc_async.c.

93{
94 FIXME("(%p): stub\n", pAsync);
96}

Referenced by test_RpcAsyncGetCallStatus().

◆ RpcAsyncInitializeHandle()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncInitializeHandle ( PRPC_ASYNC_STATE  pAsync,
unsigned int  Size 
)

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);
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 ERR(fmt,...)
Definition: debug.h:110
#define NULL
Definition: types.h:112
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define RPC_ASYNC_SIGNATURE
Definition: rpc_async.c:36
#define memset(x, y, z)
Definition: compat.h:39
LONG_PTR Reserved[4]
Definition: rpcasync.h:156
unsigned int Size
Definition: rpcasync.h:146
void * RuntimeInfo
Definition: rpcasync.h:152
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_Reserved_ PVOID Reserved
Definition: winddi.h:3974

Referenced by NdrAsyncServerCall(), 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 EnumHandle)

Definition at line 890 of file rpcrt4_main.c.

891{
892 FIXME("(%p): stub\n", EnumHandle);
893 return RPC_S_OK;
894}

◆ RpcErrorGetNextRecord()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNextRecord ( RPC_ERROR_ENUM_HANDLE EnumHandle,
BOOL  CopyStrings,
RPC_EXTENDED_ERROR_INFO ErrorInfo 
)

Definition at line 917 of file rpcrt4_main.c.

918{
919 FIXME("(%p %x %p): stub\n", EnumHandle, CopyStrings, ErrorInfo);
921}
#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 EnumHandle)

Definition at line 881 of file rpcrt4_main.c.

882{
883 FIXME("(%p): stub\n", EnumHandle);
885}

◆ 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   
)