25 #ifndef __RPCRUNTIME_H__
26 #define __RPCRUNTIME_H__
32 #define MAX_REG_INTERFACE 10
36 ST_CLR_RPC_UUID uuidObject;
37 ST_CLR_RPC_UUID uuidIfId;
38 ALIGNED_DWORD_DECL(dwIpTarget);
39 ALIGNED_DWORD_DECL(dwOldIpTarget);
40 ALIGNED_DWORD_DECL(dwQueue);
43 }PACK_ALIGNEMENT(ST_INTERFACE_REGISTER),APP_FAR *LPST_INTERFACE_REGISTER;
45 #define ST_INTERFACE_REGISTER_SIZEOF sizeof(ST_INTERFACE_REGISTER)
52 typedef enum _RPC_RES_TYPE
61 ST_RPC_DATA_BUFFER stRPCData;
63 ALIGNED_DWORD_DECL (enResType);
64 ALIGNED_DWORD_DECL (dwRPCStatus);
65 ALIGNED_DWORD_DECL (dwIPAddressCaller);
67 #ifdef __RPC_MICROSOFT_WSE
68 APP_BYTE byServerRepReady;
70 APP_LPVOID lpstServer;
71 } PACK_ALIGNEMENT(ST_RPC_REQ),APP_FAR *LPST_RPC_REQ;
72 #define ST_RPC_REQ_SIZEOF sizeof(ST_RPC_REQ)
73 STRUCT_SIZE_CHECK(ST_RPC_REQ, ST_RPC_REQ_SIZEOF)
75 #ifdef __RPC_MICROSOFT_WSE
77 #define STATE_RESPONSE 1
79 #define GET_REQ_REP_READY(preq) (preq)->byServerRepReady
80 #define SET_REQ_REP_READY(preq,v) (preq)->byServerRepReady =(v)
83 #define REQ_DATA(preq) (&(preq)->stRPCData)
85 #ifndef PLATFORM_NO_PACKING
86 #define GET_REQ_RPC_STATUS(preq) (preq)->dwRPCStatus
87 #define SET_REQ_RPC_STATUS(preq,v) (preq)->dwRPCStatus =(v)
90 #ifdef PLATFORM_NO_PACKING
91 #define GET_REQ_RPC_STATUS(preq) ALIGNED_DWORD_VALUE((preq)->dwRPCStatus)
92 #define SET_REQ_RPC_STATUS(preq,v) ALIGNED_DWORD_ASSIGN((v), (preq)->dwRPCStatus)
95 #define SET_REQ_RPC_STATUS_PNIO(preq,a,b,c,d) (preq)->dwRPCStatus =((a*16777216) + (b*65536) + (c*256) + d)
103 ST_CLR_RPC_UUID uuidObject;
104 ST_CLR_RPC_UUID uuidActivity;
105 ALIGNED_DWORD_DECL(dwSequenceNb);
106 ALIGNED_DWORD_DECL(dwServerBootTime);
107 ALIGNED_DWORD_DECL(dwIPAddress);
114 #define ST_RPC_CONTEXT_SIZEOF sizeof(ST_RPC_CONTEXT)
123 ST_RPC_DATA_BUFFER stRPCData;
125 ST_CLR_RPC_UUID uuidInterface;
126 ALIGNED_DWORD_DECL( dwIpAddrSrc);
127 ALIGNED_DWORD_DECL( enResType);
128 ALIGNED_DWORD_DECL( dwRPCStatus);
129 ALIGNED_DWORD_DECL( dwIdQueue);
130 ALIGNED_DWORD_DECL( dwRPCInterfaceVersion);
131 APP_WORD wOperationNmb;
135 APP_WORD wIdRspCancel;
136 } PACK_ALIGNEMENT(ST_RPC_CALL),APP_FAR *LPST_RPC_CALL;
137 #define ST_RPC_CALL_SIZEOF sizeof(ST_RPC_CALL)
140 #define CALL_DATA(pcall) (&((pcall)->stRPCData))
144 #define GET_CALL_INTERFACE_UUID(pcall) (pcall)->uuidInterface
145 #define GET_CALL_INTERFACE_VERS(pcall) (pcall)->dwRPCInterfaceVersion
146 #define GET_CALL_OPNUM(pcall) (pcall)->wOperationNmb
147 #define GET_CALL_RPC_STATUS(pcall) (pcall)->dwRPCStatus
149 #define SET_CALL_INTERFACE_UUID(pcall,v) OS_MEMCOPY(&((pcall)->uuidInterface),&v,sizeof(ST_CLR_RPC_UUID))
151 #ifndef PLATFORM_NO_PACKING
152 #define SET_CALL_INTERFACE_VERS(pcall,v) (pcall)->dwRPCInterfaceVersion = (v)
153 #define GET_CALL_RPC_IP_SRC(pcall) (pcall)->dwIpAddrSrc
154 #define SET_CALL_RPC_IP_SRC(pcall,v) (pcall)->dwIpAddrSrc = (v)
156 #ifdef PLATFORM_NO_PACKING
157 #define SET_CALL_INTERFACE_VERS(pcall,v) ALIGNED_DWORD_ASSIGN((v), (pcall)->dwRPCInterfaceVersion)
158 #define GET_CALL_RPC_IP_SRC(pcall) ALIGNED_DWORD_VALUE((pcall)->dwIpAddrSrc)
159 #define SET_CALL_RPC_IP_SRC(pcall,v) ALIGNED_DWORD_ASSIGN((v), (pcall)->dwIpAddrSrc)
162 #define SET_CALL_OPNUM(pcall,v) (pcall)->wOperationNmb = (v)
164 #ifndef PLATFORM_NO_PACKING
165 #define SET_CALL_RPC_STATUS(pcall,v) (pcall)->dwRPCStatus = (v)
167 #ifdef PLATFORM_NO_PACKING
168 #define SET_CALL_RPC_STATUS(pcall,v) ALIGNED_DWORD_ASSIGN((v), (pcall)->dwRPCStatus)
172 #define GET_CALL_OBJECTUUID(pcall) (&(pcall)->stRPCContext.uuidObject)
173 #define GET_CALL_ACTIVITYUUID(pcall) (&(pcall)->stRPCContext.uuidActivity)
174 #define GET_CALL_OBJECTUUID_VAL(pcall) (pcall)->stRPCContext.uuidObject
175 #define GET_CALL_ACTIVITYUUID_VAL(pcall) (pcall)->stRPCContext.uuidActivity
177 #ifndef PLATFORM_NO_PACKING
178 #define GET_CALL_IPADDRESS(pcall) (pcall)->stRPCContext.dwIPAddress
179 #define GET_CALL_SEQUENCE(pcall) (pcall)->stRPCContext.dwSequenceNb
180 #define GET_CALL_BOOTTIME(pcall) (pcall)->stRPCContext.dwServerBootTime
182 #define SET_CALL_IPADDRESS(pcall,val) (pcall)->stRPCContext.dwIPAddress = val
183 #define SET_CALL_SEQUENCE(pcall,val) (pcall)->stRPCContext.dwSequenceNb = val
184 #define SET_CALL_BOOTTIME(pcall,val) (pcall)->stRPCContext.dwServerBootTime = val
186 #define SET_CALL_RET_MSG_QUEUE(pcall,v) (pcall)->dwIdQueue = (v)
190 #ifdef PLATFORM_NO_PACKING
191 #define GET_CALL_IPADDRESS(pcall) ALIGNED_DWORD_VALUE((pcall)->stRPCContext.dwIPAddress)
192 #define GET_CALL_SEQUENCE(pcall) ALIGNED_DWORD_VALUE((pcall)->stRPCContext.dwSequenceNb)
193 #define GET_CALL_BOOTTIME(pcall) ALIGNED_DWORD_VALUE((pcall)->stRPCContext.dwServerBootTime)
195 #define SET_CALL_IPADDRESS(pcall,val) ALIGNED_DWORD_ASSIGN((val), (pcall)->stRPCContext.dwIPAddress)
196 #define SET_CALL_SEQUENCE(pcall,val) ALIGNED_DWORD_ASSIGN((val), (pcall)->stRPCContext.dwSequenceNb)
197 #define SET_CALL_BOOTTIME(pcall,val) ALIGNED_DWORD_ASSIGN((val), (pcall)->stRPCContext.dwServerBootTime)
199 #define SET_CALL_RET_MSG_QUEUE(pcall,v) ALIGNED_DWORD_ASSIGN((v), (pcall)->dwIdQueue)
203 #define GET_CALL_RET_MSG_QUEUE(pcall) (pcall)->dwIdQueue
204 #define GET_CALL_PORT(pcall) (pcall)->stRPCContext.wPort
205 #define SET_CALL_PORT(pcall,val) (pcall)->stRPCContext.wPort = val
207 #define SET_CALL_OBJECTUUID(pcall,val) OS_MEMCOPY(&(pcall)->stRPCContext.uuidObject,&val,sizeof(ST_CLR_RPC_UUID))
208 #define SET_CALL_ACTIVITYUUID(pcall,val) OS_MEMCOPY(&(pcall)->stRPCContext.uuidActivity,&val,sizeof(ST_CLR_RPC_UUID))
214 #define GET_CALL_RET_MSG_IDPOS(pcall) (pcall)->wIdRspPos
215 #define GET_CALL_RET_MSG_IDNEG(pcall) (pcall)->wIdRspNeg
216 #define GET_CALL_RET_MSG_IDCANCEL(pcall) (pcall)->wIdRspCancel
219 #define SET_CALL_RET_MSG_IDPOS(pcall,v) (pcall)->wIdRspPos = (v)
220 #define SET_CALL_RET_MSG_IDNEG(pcall,v) (pcall)->wIdRspNeg = (v)
221 #define SET_CALL_RET_MSG_IDCANCEL(pcall,v) (pcall)->wIdRspCancel = (v)
226 #include "os_unpck.h"
231 #define CONST_COMM_FAILURE 0x1C010001UL
232 #define CONST_UNSPECIFIED_REJECT 0x1C000009UL
233 #define CONST_UNSPECIFIED_FAULT 0x1C000012UL
234 #define CONST_REJECT_ARG_OUT_TOO_BIG 0x1C010013UL
235 #define CONST_REJECT_SERVER_BUSY 0x1C010014UL
237 #define CTS_BAD_ACT_ID 0x1c00000AUL
238 #define CTS_NCA_S_INVALID_CHKSUM 0x1c00001fUL
239 #define CTS_UNSPEC_REJECT 0x1c000009UL
240 #define CTS_NO_MEMORY 0x1C00001BUL
241 #define CTS_UNK_IF 0x1C010003UL
242 #define CTS_WRONG_BOOT_TIME 0x1c010006UL
243 #define CTS_YOU_CRASHED 0x1c010009UL
244 #define CTS_RPC_S_OK 0
246 #define CTS_MAX_PINGS 3
247 #define CTS_MAX_REQUESTS 3
248 #define CTS_MAX_REPLIES 3
251 #define TIMEOUT_BROADCAST 5000
252 #define TIMEOUT_ACK 1000
253 #define TIMEOUT_CANCEL 1000
254 #define TIMEOUT_FRAG 2000
255 #define TIMEOUT_PING 2000
257 #define TIMEOUT_WAIT 2000
259 #define TIMEOUT_IDLE 30000
260 #define TIMEOUT_RESEND 2000
262 #define CTS_CL_VERSION_NUM_V20 PNIO_RPC_VERSION
263 #define CTS_CANCEL_VERSION 0
265 #define CTS_REQUEST RPC_PKT_TYPE_REQUEST
266 #define CTS_PING RPC_PKT_TYPE_PING
267 #define CTS_RESPONSE RPC_PKT_TYPE_RESPONSE
268 #define CTS_FAULT RPC_PKT_TYPE_FAULT
269 #define CTS_WORKING RPC_PKT_TYPE_WORKING
270 #define CTS_NOCALL RPC_PKT_TYPE_NOCALL
271 #define CTS_REJECT RPC_PKT_TYPE_REJECT
272 #define CTS_ACK RPC_PKT_TYPE_ACKNO
273 #define CTS_CANCEL RPC_PKT_TYPE_CNXLESS
274 #define CTS_FACK RPC_PKT_TYPE_FRGACK
275 #define CTS_CANCEL_ACK RPC_PKT_TYPE_CANCELACK
282 APP_WORD rpcruntime_task(APP_LPVOID pArg);
283 #define RPC_ALLOC_REQ OS_SEND_MESSAGE_RPC(ID_RPC_ALLOC)
Definition: rpcrunti.h:34
Definition: rpcrunti.h:121
Definition: rpcrunti.h:59
Definition: rpcrunti.h:102