Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenrpcndr.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 2000 Francois Gouget 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 00019 #ifndef __RPCNDR_H_VERSION__ 00020 #define __RPCNDR_H_VERSION__ ( 500 ) 00021 #endif 00022 00023 #ifndef __WINE_RPCNDR_H 00024 #define __WINE_RPCNDR_H 00025 00026 #include <basetsd.h> 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00032 #ifdef _MSC_VER 00033 #pragma warning(push) 00034 #pragma warning(disable:4201) 00035 #pragma warning(disable:4255) 00036 #pragma warning(disable:4820) 00037 #endif 00038 #undef CONST_VTBL 00039 #ifdef CONST_VTABLE 00040 # define CONST_VTBL const 00041 #else 00042 # define CONST_VTBL 00043 #endif 00044 00045 /* stupid #if can't handle casts... this __stupidity 00046 is just a workaround for that limitation */ 00047 00048 #define __NDR_CHAR_REP_MASK 0x000fL 00049 #define __NDR_INT_REP_MASK 0x00f0L 00050 #define __NDR_FLOAT_REP_MASK 0xff00L 00051 00052 #define __NDR_IEEE_FLOAT 0x0000L 00053 #define __NDR_VAX_FLOAT 0x0100L 00054 #define __NDR_IBM_FLOAT 0x0300L 00055 00056 #define __NDR_ASCII_CHAR 0x0000L 00057 #define __NDR_EBCDIC_CHAR 0x0001L 00058 00059 #define __NDR_LITTLE_ENDIAN 0x0010L 00060 #define __NDR_BIG_ENDIAN 0x0000L 00061 00062 /* Mac's are special */ 00063 #if defined(__RPC_MAC__) 00064 # define __NDR_LOCAL_DATA_REPRESENTATION \ 00065 (__NDR_IEEE_FLOAT | __NDR_ASCII_CHAR | __NDR_BIG_ENDIAN) 00066 #else 00067 # define __NDR_LOCAL_DATA_REPRESENTATION \ 00068 (__NDR_IEEE_FLOAT | __NDR_ASCII_CHAR | __NDR_LITTLE_ENDIAN) 00069 #endif 00070 00071 #define __NDR_LOCAL_ENDIAN \ 00072 (__NDR_LOCAL_DATA_REPRESENTATION & __NDR_INT_REP_MASK) 00073 00074 /* for convenience, define NDR_LOCAL_IS_BIG_ENDIAN iff it is */ 00075 #if __NDR_LOCAL_ENDIAN == __NDR_BIG_ENDIAN 00076 # define NDR_LOCAL_IS_BIG_ENDIAN 00077 #elif __NDR_LOCAL_ENDIAN == __NDR_LITTLE_ENDIAN 00078 # undef NDR_LOCAL_IS_BIG_ENDIAN 00079 #else 00080 # error alien NDR_LOCAL_ENDIAN - Greg botched the defines again, please report 00081 #endif 00082 00083 /* finally, do the casts like Microsoft */ 00084 00085 #define NDR_CHAR_REP_MASK ((ULONG) __NDR_CHAR_REP_MASK) 00086 #define NDR_INT_REP_MASK ((ULONG) __NDR_INT_REP_MASK) 00087 #define NDR_FLOAT_REP_MASK ((ULONG) __NDR_FLOAT_REP_MASK) 00088 #define NDR_IEEE_FLOAT ((ULONG) __NDR_IEEE_FLOAT) 00089 #define NDR_VAX_FLOAT ((ULONG) __NDR_VAX_FLOAT) 00090 #define NDR_IBM_FLOAT ((ULONG) __NDR_IBM_FLOAT) 00091 #define NDR_ASCII_CHAR ((ULONG) __NDR_ASCII_CHAR) 00092 #define NDR_EBCDIC_CHAR ((ULONG) __NDR_EBCDIC_CHAR) 00093 #define NDR_LITTLE_ENDIAN ((ULONG) __NDR_LITTLE_ENDIAN) 00094 #define NDR_BIG_ENDIAN ((ULONG) __NDR_BIG_ENDIAN) 00095 #define NDR_LOCAL_DATA_REPRESENTATION ((ULONG) __NDR_LOCAL_DATA_REPRESENTATION) 00096 #define NDR_LOCAL_ENDIAN ((ULONG) __NDR_LOCAL_ENDIAN) 00097 00098 00099 #define TARGET_IS_NT50_OR_LATER 1 00100 #define TARGET_IS_NT40_OR_LATER 1 00101 #define TARGET_IS_NT351_OR_WIN95_OR_LATER 1 00102 00103 #define small char 00104 typedef unsigned char byte; 00105 typedef INT64 hyper; 00106 typedef UINT64 MIDL_uhyper; 00107 typedef unsigned char boolean; 00108 00109 #define __RPC_CALLEE WINAPI 00110 #define RPC_VAR_ENTRY __cdecl 00111 #define NDR_SHAREABLE static 00112 00113 #define MIDL_ascii_strlen(s) strlen(s) 00114 #define MIDL_ascii_strcpy(d,s) strcpy(d,s) 00115 #define MIDL_memset(d,v,n) memset(d,v,n) 00116 #define midl_user_free MIDL_user_free 00117 #define midl_user_allocate MIDL_user_allocate 00118 00119 void * __RPC_USER MIDL_user_allocate(SIZE_T); 00120 void __RPC_USER MIDL_user_free(void *); 00121 00122 #define NdrFcShort(s) (unsigned char)(s & 0xff), (unsigned char)(s >> 8) 00123 #define NdrFcLong(s) (unsigned char)(s & 0xff), (unsigned char)((s & 0x0000ff00) >> 8), \ 00124 (unsigned char)((s & 0x00ff0000) >> 16), (unsigned char)(s >> 24) 00125 00126 #define RPC_BAD_STUB_DATA_EXCEPTION_FILTER \ 00127 ((RpcExceptionCode() == STATUS_ACCESS_VIOLATION) || \ 00128 (RpcExceptionCode() == STATUS_DATATYPE_MISALIGNMENT) || \ 00129 (RpcExceptionCode() == RPC_X_BAD_STUB_DATA) || \ 00130 (RpcExceptionCode() == RPC_S_INVALID_BOUND)) 00131 00132 typedef struct tagNDR_SCONTEXT 00133 { 00134 void *pad[2]; 00135 void *userContext; 00136 } *NDR_SCONTEXT; 00137 00138 #define NDRSContextValue(hContext) (&(hContext)->userContext) 00139 #define cbNDRContext 20 00140 00141 typedef void (__RPC_USER *NDR_RUNDOWN)(void *context); 00142 typedef void (__RPC_USER *NDR_NOTIFY_ROUTINE)(void); 00143 typedef void (__RPC_USER *NDR_NOTIFY2_ROUTINE)(boolean flag); 00144 00145 #define DECLSPEC_UUID(x) 00146 #define MIDL_INTERFACE(x) struct 00147 00148 struct _MIDL_STUB_MESSAGE; 00149 struct _MIDL_STUB_DESC; 00150 struct _FULL_PTR_XLAT_TABLES; 00151 struct NDR_ALLOC_ALL_NODES_CONTEXT; 00152 struct NDR_POINTER_QUEUE_STATE; 00153 00154 typedef unsigned char *RPC_BUFPTR; 00155 typedef ULONG RPC_LENGTH; 00156 typedef void (__RPC_USER *EXPR_EVAL)(struct _MIDL_STUB_MESSAGE *); 00157 typedef const unsigned char *PFORMAT_STRING; 00158 00159 typedef struct 00160 { 00161 LONG Dimension; 00162 ULONG *BufferConformanceMark; 00163 ULONG *BufferVarianceMark; 00164 ULONG *MaxCountArray; 00165 ULONG *OffsetArray; 00166 ULONG *ActualCountArray; 00167 } ARRAY_INFO, *PARRAY_INFO; 00168 00169 typedef struct 00170 { 00171 ULONG WireCodeset; 00172 ULONG DesiredReceivingCodeset; 00173 void *CSArrayInfo; 00174 } CS_STUB_INFO; 00175 00176 typedef struct _NDR_PIPE_DESC *PNDR_PIPE_DESC; 00177 typedef struct _NDR_PIPE_MESSAGE *PNDR_PIPE_MESSAGE; 00178 typedef struct _NDR_ASYNC_MESSAGE *PNDR_ASYNC_MESSAGE; 00179 typedef struct _NDR_CORRELATION_INFO *PNDR_CORRELATION_INFO; 00180 00181 typedef struct _MIDL_STUB_MESSAGE 00182 { 00183 PRPC_MESSAGE RpcMsg; 00184 unsigned char *Buffer; 00185 unsigned char *BufferStart; 00186 unsigned char *BufferEnd; 00187 unsigned char *BufferMark; 00188 ULONG BufferLength; 00189 ULONG MemorySize; 00190 unsigned char *Memory; 00191 unsigned char IsClient; 00192 unsigned char Pad; 00193 unsigned short uFlags2; 00194 int ReuseBuffer; 00195 struct NDR_ALLOC_ALL_NODES_CONTEXT *pAllocAllNodesContext; 00196 struct NDR_POINTER_QUEUE_STATE *pPointerQueueState; 00197 int IgnoreEmbeddedPointers; 00198 unsigned char *PointerBufferMark; 00199 unsigned char CorrDespIncrement; 00200 unsigned char uFlags; 00201 unsigned short UniquePtrCount; 00202 ULONG_PTR MaxCount; 00203 ULONG Offset; 00204 ULONG ActualCount; 00205 void * (__WINE_ALLOC_SIZE(1) __RPC_API *pfnAllocate)(SIZE_T); 00206 void (__RPC_API *pfnFree)(void *); 00207 unsigned char *StackTop; 00208 unsigned char *pPresentedType; 00209 unsigned char *pTransmitType; 00210 handle_t SavedHandle; 00211 const struct _MIDL_STUB_DESC *StubDesc; 00212 struct _FULL_PTR_XLAT_TABLES *FullPtrXlatTables; 00213 ULONG FullPtrRefId; 00214 ULONG PointerLength; 00215 unsigned int fInDontFree:1; 00216 unsigned int fDontCallFreeInst:1; 00217 unsigned int fInOnlyParam:1; 00218 unsigned int fHasReturn:1; 00219 unsigned int fHasExtensions:1; 00220 unsigned int fHasNewCorrDesc:1; 00221 unsigned int fIsIn:1; 00222 unsigned int fIsOut:1; 00223 unsigned int fIsOicf:1; 00224 unsigned int fBufferValid:1; 00225 unsigned int fHasMemoryValidateCallback:1; 00226 unsigned int fInFree:1; 00227 unsigned int fNeedMCCP:1; 00228 int fUnused:3; 00229 int fUnused2:16; 00230 DWORD dwDestContext; 00231 void *pvDestContext; 00232 NDR_SCONTEXT *SavedContextHandles; 00233 LONG ParamNumber; 00234 struct IRpcChannelBuffer *pRpcChannelBuffer; 00235 PARRAY_INFO pArrayInfo; 00236 ULONG *SizePtrCountArray; 00237 ULONG *SizePtrOffsetArray; 00238 ULONG *SizePtrLengthArray; 00239 void *pArgQueue; 00240 DWORD dwStubPhase; 00241 void *LowStackMark; 00242 PNDR_ASYNC_MESSAGE pAsyncMsg; 00243 PNDR_CORRELATION_INFO pCorrInfo; 00244 unsigned char *pCorrMemory; 00245 void *pMemoryList; 00246 CS_STUB_INFO *pCSInfo; 00247 unsigned char *ConformanceMark; 00248 unsigned char *VarianceMark; 00249 INT_PTR Unused; /* BackingStoreLowMark on IA64 */ 00250 struct _NDR_PROC_CONTEXT *pContext; 00251 void* ContextHandleHash; 00252 void* pUserMarshalList; 00253 INT_PTR Reserved51_3; 00254 INT_PTR Reserved51_4; 00255 INT_PTR Reserved51_5; 00256 } MIDL_STUB_MESSAGE, *PMIDL_STUB_MESSAGE; 00257 00258 typedef void * (__RPC_API * GENERIC_BINDING_ROUTINE)(void *); 00259 typedef void (__RPC_API * GENERIC_UNBIND_ROUTINE)(void *, unsigned char *); 00260 00261 typedef struct _GENERIC_BINDING_ROUTINE_PAIR 00262 { 00263 GENERIC_BINDING_ROUTINE pfnBind; 00264 GENERIC_UNBIND_ROUTINE pfnUnbind; 00265 } GENERIC_BINDING_ROUTINE_PAIR, *PGENERIC_BINDING_ROUTINE_PAIR; 00266 00267 typedef struct __GENERIC_BINDING_INFO 00268 { 00269 void *pObj; 00270 unsigned int Size; 00271 GENERIC_BINDING_ROUTINE pfnBind; 00272 GENERIC_UNBIND_ROUTINE pfnUnbind; 00273 } GENERIC_BINDING_INFO, *PGENERIC_BINDING_INFO; 00274 00275 typedef void (__RPC_USER *XMIT_HELPER_ROUTINE)(PMIDL_STUB_MESSAGE); 00276 00277 typedef struct _XMIT_ROUTINE_QUINTUPLE 00278 { 00279 XMIT_HELPER_ROUTINE pfnTranslateToXmit; 00280 XMIT_HELPER_ROUTINE pfnTranslateFromXmit; 00281 XMIT_HELPER_ROUTINE pfnFreeXmit; 00282 XMIT_HELPER_ROUTINE pfnFreeInst; 00283 } XMIT_ROUTINE_QUINTUPLE, *PXMIT_ROUTINE_QUINTUPLE; 00284 00285 typedef ULONG (__RPC_USER *USER_MARSHAL_SIZING_ROUTINE)(ULONG *, ULONG, void *); 00286 typedef unsigned char * (__RPC_USER *USER_MARSHAL_MARSHALLING_ROUTINE)(ULONG *, unsigned char *, void *); 00287 typedef unsigned char * (__RPC_USER *USER_MARSHAL_UNMARSHALLING_ROUTINE)(ULONG *, unsigned char *, void *); 00288 typedef void (__RPC_USER *USER_MARSHAL_FREEING_ROUTINE)(ULONG *, void *); 00289 00290 typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE 00291 { 00292 USER_MARSHAL_SIZING_ROUTINE pfnBufferSize; 00293 USER_MARSHAL_MARSHALLING_ROUTINE pfnMarshall; 00294 USER_MARSHAL_UNMARSHALLING_ROUTINE pfnUnmarshall; 00295 USER_MARSHAL_FREEING_ROUTINE pfnFree; 00296 } USER_MARSHAL_ROUTINE_QUADRUPLE; 00297 00298 /* 'USRC' */ 00299 #define USER_MARSHAL_CB_SIGNATURE \ 00300 ( ( (DWORD)'U' << 24 ) | ( (DWORD)'S' << 16 ) | \ 00301 ( (DWORD)'R' << 8 ) | ( (DWORD)'C' ) ) 00302 00303 typedef enum 00304 { 00305 USER_MARSHAL_CB_BUFFER_SIZE, 00306 USER_MARSHAL_CB_MARSHALL, 00307 USER_MARSHAL_CB_UNMARSHALL, 00308 USER_MARSHAL_CB_FREE 00309 } USER_MARSHAL_CB_TYPE; 00310 00311 typedef struct _USER_MARSHAL_CB 00312 { 00313 ULONG Flags; 00314 PMIDL_STUB_MESSAGE pStubMsg; 00315 PFORMAT_STRING pReserve; 00316 ULONG Signature; 00317 USER_MARSHAL_CB_TYPE CBType; 00318 PFORMAT_STRING pFormat; 00319 PFORMAT_STRING pTypeFormat; 00320 } USER_MARSHAL_CB; 00321 00322 #define USER_CALL_CTXT_MASK(f) ((f) & 0x00ff) 00323 #define USER_CALL_AUX_MASK(f) ((f) & 0xff00) 00324 #define GET_USER_DATA_REP(f) HIWORD(f) 00325 00326 #define USER_CALL_IS_ASYNC 0x0100 00327 #define USER_CALL_NEW_CORRELATION_DESC 0x0200 00328 00329 typedef struct _MALLOC_FREE_STRUCT 00330 { 00331 void * (__WINE_ALLOC_SIZE(1) __RPC_USER *pfnAllocate)(SIZE_T); 00332 void (__RPC_USER *pfnFree)(void *); 00333 } MALLOC_FREE_STRUCT; 00334 00335 typedef struct _COMM_FAULT_OFFSETS 00336 { 00337 short CommOffset; 00338 short FaultOffset; 00339 } COMM_FAULT_OFFSETS; 00340 00341 typedef struct _MIDL_STUB_DESC 00342 { 00343 void *RpcInterfaceInformation; 00344 void * (__WINE_ALLOC_SIZE(1) __RPC_API *pfnAllocate)(SIZE_T); 00345 void (__RPC_API *pfnFree)(void *); 00346 union { 00347 handle_t *pAutoHandle; 00348 handle_t *pPrimitiveHandle; 00349 PGENERIC_BINDING_INFO pGenericBindingInfo; 00350 } IMPLICIT_HANDLE_INFO; 00351 const NDR_RUNDOWN *apfnNdrRundownRoutines; 00352 const GENERIC_BINDING_ROUTINE_PAIR *aGenericBindingRoutinePairs; 00353 const EXPR_EVAL *apfnExprEval; 00354 const XMIT_ROUTINE_QUINTUPLE *aXmitQuintuple; 00355 const unsigned char *pFormatTypes; 00356 int fCheckBounds; 00357 ULONG Version; 00358 MALLOC_FREE_STRUCT *pMallocFreeStruct; 00359 LONG MIDLVersion; 00360 const COMM_FAULT_OFFSETS *CommFaultOffsets; 00361 const USER_MARSHAL_ROUTINE_QUADRUPLE *aUserMarshalQuadruple; 00362 const NDR_NOTIFY_ROUTINE *NotifyRoutineTable; 00363 ULONG_PTR mFlags; 00364 ULONG_PTR Reserved3; 00365 ULONG_PTR Reserved4; 00366 ULONG_PTR Reserved5; 00367 } MIDL_STUB_DESC; 00368 typedef const MIDL_STUB_DESC *PMIDL_STUB_DESC; 00369 00370 typedef struct _MIDL_FORMAT_STRING 00371 { 00372 short Pad; 00373 #if defined(__GNUC__) 00374 unsigned char Format[0]; 00375 #else 00376 unsigned char Format[1]; 00377 #endif 00378 } MIDL_FORMAT_STRING; 00379 00380 typedef struct _MIDL_SYNTAX_INFO 00381 { 00382 RPC_SYNTAX_IDENTIFIER TransferSyntax; 00383 RPC_DISPATCH_TABLE* DispatchTable; 00384 PFORMAT_STRING ProcString; 00385 const unsigned short* FmtStringOffset; 00386 PFORMAT_STRING TypeString; 00387 const void* aUserMarshalQuadruple; 00388 ULONG_PTR pReserved1; 00389 ULONG_PTR pReserved2; 00390 } MIDL_SYNTAX_INFO, *PMIDL_SYNTAX_INFO; 00391 00392 typedef void (__RPC_API *STUB_THUNK)( PMIDL_STUB_MESSAGE ); 00393 00394 #ifdef WINE_STRICT_PROTOTYPES 00395 typedef LONG (__RPC_API *SERVER_ROUTINE)(void); 00396 #else 00397 typedef LONG (__RPC_API *SERVER_ROUTINE)(); 00398 #endif 00399 00400 typedef struct _MIDL_SERVER_INFO_ 00401 { 00402 PMIDL_STUB_DESC pStubDesc; 00403 const SERVER_ROUTINE *DispatchTable; 00404 PFORMAT_STRING ProcString; 00405 const unsigned short *FmtStringOffset; 00406 const STUB_THUNK *ThunkTable; 00407 PRPC_SYNTAX_IDENTIFIER pTransferSyntax; 00408 ULONG_PTR nCount; 00409 PMIDL_SYNTAX_INFO pSyntaxInfo; 00410 } MIDL_SERVER_INFO, *PMIDL_SERVER_INFO; 00411 00412 typedef struct _MIDL_STUBLESS_PROXY_INFO 00413 { 00414 PMIDL_STUB_DESC pStubDesc; 00415 PFORMAT_STRING ProcFormatString; 00416 const unsigned short *FormatStringOffset; 00417 PRPC_SYNTAX_IDENTIFIER pTransferSyntax; 00418 ULONG_PTR nCount; 00419 PMIDL_SYNTAX_INFO pSyntaxInfo; 00420 } MIDL_STUBLESS_PROXY_INFO, *PMIDL_STUBLESS_PROXY_INFO; 00421 00422 typedef union _CLIENT_CALL_RETURN 00423 { 00424 void *Pointer; 00425 LONG_PTR Simple; 00426 } CLIENT_CALL_RETURN; 00427 00428 typedef enum { 00429 STUB_UNMARSHAL, 00430 STUB_CALL_SERVER, 00431 STUB_MARSHAL, 00432 STUB_CALL_SERVER_NO_HRESULT 00433 } STUB_PHASE; 00434 00435 typedef enum { 00436 PROXY_CALCSIZE, 00437 PROXY_GETBUFFER, 00438 PROXY_MARSHAL, 00439 PROXY_SENDRECEIVE, 00440 PROXY_UNMARSHAL 00441 } PROXY_PHASE; 00442 00443 typedef enum { 00444 XLAT_SERVER = 1, 00445 XLAT_CLIENT 00446 } XLAT_SIDE; 00447 00448 typedef struct _FULL_PTR_TO_REFID_ELEMENT { 00449 struct _FULL_PTR_TO_REFID_ELEMENT *Next; 00450 void *Pointer; 00451 ULONG RefId; 00452 unsigned char State; 00453 } FULL_PTR_TO_REFID_ELEMENT, *PFULL_PTR_TO_REFID_ELEMENT; 00454 00455 /* Full pointer translation tables */ 00456 typedef struct _FULL_PTR_XLAT_TABLES { 00457 struct { 00458 void **XlatTable; 00459 unsigned char *StateTable; 00460 ULONG NumberOfEntries; 00461 } RefIdToPointer; 00462 00463 struct { 00464 PFULL_PTR_TO_REFID_ELEMENT *XlatTable; 00465 ULONG NumberOfBuckets; 00466 ULONG HashMask; 00467 } PointerToRefId; 00468 00469 ULONG NextRefId; 00470 XLAT_SIDE XlatSide; 00471 } FULL_PTR_XLAT_TABLES, *PFULL_PTR_XLAT_TABLES; 00472 00473 struct IRpcStubBuffer; 00474 00475 typedef ULONG error_status_t; 00476 typedef void * NDR_CCONTEXT; 00477 00478 typedef struct _SCONTEXT_QUEUE { 00479 ULONG NumberOfObjects; 00480 NDR_SCONTEXT *ArrayOfObjects; 00481 } SCONTEXT_QUEUE, *PSCONTEXT_QUEUE; 00482 00483 typedef struct _NDR_USER_MARSHAL_INFO_LEVEL1 00484 { 00485 void *Buffer; 00486 ULONG BufferSize; 00487 void * (__WINE_ALLOC_SIZE(1) __RPC_API *pfnAllocate)(SIZE_T); 00488 void (__RPC_API *pfnFree)(void *); 00489 struct IRpcChannelBuffer *pRpcChannelBuffer; 00490 ULONG_PTR Reserved[5]; 00491 } NDR_USER_MARSHAL_INFO_LEVEL1; 00492 00493 typedef struct _NDR_USER_MARSHAL_INFO 00494 { 00495 ULONG InformationLevel; 00496 union 00497 { 00498 NDR_USER_MARSHAL_INFO_LEVEL1 Level1; 00499 } DUMMYUNIONNAME1; 00500 } NDR_USER_MARSHAL_INFO; 00501 00502 /* Context Handles */ 00503 00504 RPCRTAPI RPC_BINDING_HANDLE RPC_ENTRY 00505 NDRCContextBinding( NDR_CCONTEXT CContext ); 00506 00507 RPCRTAPI void RPC_ENTRY 00508 NDRCContextMarshall( NDR_CCONTEXT CContext, void *pBuff ); 00509 00510 RPCRTAPI void RPC_ENTRY 00511 NDRCContextUnmarshall( NDR_CCONTEXT *pCContext, RPC_BINDING_HANDLE hBinding, 00512 void *pBuff, ULONG DataRepresentation ); 00513 00514 RPCRTAPI void RPC_ENTRY 00515 NDRSContextMarshall( NDR_SCONTEXT CContext, void *pBuff, NDR_RUNDOWN userRunDownIn ); 00516 00517 RPCRTAPI NDR_SCONTEXT RPC_ENTRY 00518 NDRSContextUnmarshall( void *pBuff, ULONG DataRepresentation ); 00519 00520 RPCRTAPI void RPC_ENTRY 00521 NDRSContextMarshallEx( RPC_BINDING_HANDLE BindingHandle, NDR_SCONTEXT CContext, 00522 void *pBuff, NDR_RUNDOWN userRunDownIn ); 00523 00524 RPCRTAPI void RPC_ENTRY 00525 NDRSContextMarshall2( RPC_BINDING_HANDLE BindingHandle, NDR_SCONTEXT CContext, 00526 void *pBuff, NDR_RUNDOWN userRunDownIn, void * CtxGuard, 00527 ULONG Flags ); 00528 00529 RPCRTAPI NDR_SCONTEXT RPC_ENTRY 00530 NDRSContextUnmarshallEx( RPC_BINDING_HANDLE BindingHandle, void *pBuff, 00531 ULONG DataRepresentation ); 00532 00533 RPCRTAPI NDR_SCONTEXT RPC_ENTRY 00534 NDRSContextUnmarshall2( RPC_BINDING_HANDLE BindingHandle, void *pBuff, 00535 ULONG DataRepresentation, void *CtxGuard, 00536 ULONG Flags ); 00537 00538 RPCRTAPI void RPC_ENTRY 00539 NdrClientContextMarshall ( PMIDL_STUB_MESSAGE pStubMsg, NDR_CCONTEXT ContextHandle, int fCheck ); 00540 00541 RPCRTAPI void RPC_ENTRY 00542 NdrClientContextUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, NDR_CCONTEXT* pContextHandle, 00543 RPC_BINDING_HANDLE BindHandle ); 00544 00545 RPCRTAPI void RPC_ENTRY 00546 NdrServerContextMarshall ( PMIDL_STUB_MESSAGE pStubMsg, NDR_SCONTEXT ContextHandle, NDR_RUNDOWN RundownRoutine ); 00547 00548 RPCRTAPI NDR_SCONTEXT RPC_ENTRY 00549 NdrServerContextUnmarshall( PMIDL_STUB_MESSAGE pStubMsg ); 00550 00551 RPCRTAPI void RPC_ENTRY 00552 NdrContextHandleSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); 00553 00554 RPCRTAPI NDR_SCONTEXT RPC_ENTRY 00555 NdrContextHandleInitialize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); 00556 00557 RPCRTAPI void RPC_ENTRY 00558 NdrServerContextNewMarshall( PMIDL_STUB_MESSAGE pStubMsg, NDR_SCONTEXT ContextHandle, 00559 NDR_RUNDOWN RundownRoutine, PFORMAT_STRING pFormat ); 00560 00561 RPCRTAPI NDR_SCONTEXT RPC_ENTRY 00562 NdrServerContextNewUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); 00563 00564 RPCRTAPI RPC_STATUS RPC_ENTRY 00565 RpcSmDestroyClientContext( void **ContextHandle ); 00566 00567 RPCRTAPI void RPC_ENTRY 00568 RpcSsDestroyClientContext( void **ContextHandle ); 00569 00570 RPCRTAPI void RPC_ENTRY 00571 NdrSimpleTypeMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, unsigned char FormatChar ); 00572 RPCRTAPI void RPC_ENTRY 00573 NdrSimpleTypeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, unsigned char FormatChar ); 00574 00575 RPCRTAPI unsigned char* RPC_ENTRY 00576 NdrByteCountPointerMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); 00577 RPCRTAPI unsigned char* RPC_ENTRY 00578 NdrByteCountPointerUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char** ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); 00579 RPCRTAPI void RPC_ENTRY 00580 NdrByteCountPointerBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); 00581 RPCRTAPI void RPC_ENTRY 00582 NdrByteCountPointerFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); 00583 00584 RPCRTAPI unsigned char* RPC_ENTRY 00585 NdrRangeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char** ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); 00586 00587 /* while MS declares each prototype separately, I prefer to use macros for this kind of thing instead */ 00588 #define SIMPLE_TYPE_MARSHAL(type) \ 00589 RPCRTAPI unsigned char* RPC_ENTRY \ 00590 Ndr##type##Marshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); \ 00591 RPCRTAPI unsigned char* RPC_ENTRY \ 00592 Ndr##type##Unmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char** ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); \ 00593 RPCRTAPI void RPC_ENTRY \ 00594 Ndr##type##BufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); \ 00595 RPCRTAPI ULONG RPC_ENTRY \ 00596 Ndr##type##MemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); 00597 00598 #define TYPE_MARSHAL(type) \ 00599 SIMPLE_TYPE_MARSHAL(type) \ 00600 RPCRTAPI void RPC_ENTRY \ 00601 Ndr##type##Free( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); 00602 00603 TYPE_MARSHAL(Pointer) 00604 TYPE_MARSHAL(SimpleStruct) 00605 TYPE_MARSHAL(ConformantStruct) 00606 TYPE_MARSHAL(ConformantVaryingStruct) 00607 TYPE_MARSHAL(ComplexStruct) 00608 TYPE_MARSHAL(FixedArray) 00609 TYPE_MARSHAL(ConformantArray) 00610 TYPE_MARSHAL(ConformantVaryingArray) 00611 TYPE_MARSHAL(VaryingArray) 00612 TYPE_MARSHAL(ComplexArray) 00613 TYPE_MARSHAL(EncapsulatedUnion) 00614 TYPE_MARSHAL(NonEncapsulatedUnion) 00615 TYPE_MARSHAL(XmitOrRepAs) 00616 TYPE_MARSHAL(UserMarshal) 00617 TYPE_MARSHAL(InterfacePointer) 00618 00619 SIMPLE_TYPE_MARSHAL(ConformantString) 00620 SIMPLE_TYPE_MARSHAL(NonConformantString) 00621 00622 #undef TYPE_MARSHAL 00623 #undef SIMPLE_TYPE_MARSHAL 00624 00625 RPCRTAPI void RPC_ENTRY 00626 NdrCorrelationInitialize( PMIDL_STUB_MESSAGE pStubMsg, void *pMemory, ULONG CacheSize, ULONG flags ); 00627 RPCRTAPI void RPC_ENTRY 00628 NdrCorrelationPass( PMIDL_STUB_MESSAGE pStubMsg ); 00629 RPCRTAPI void RPC_ENTRY 00630 NdrCorrelationFree( PMIDL_STUB_MESSAGE pStubMsg ); 00631 00632 RPCRTAPI void RPC_ENTRY 00633 NdrConvert2( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, LONG NumberParams ); 00634 RPCRTAPI void RPC_ENTRY 00635 NdrConvert( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); 00636 00637 #define USER_MARSHAL_FC_BYTE 1 00638 #define USER_MARSHAL_FC_CHAR 2 00639 #define USER_MARSHAL_FC_SMALL 3 00640 #define USER_MARSHAL_FC_USMALL 4 00641 #define USER_MARSHAL_FC_WCHAR 5 00642 #define USER_MARSHAL_FC_SHORT 6 00643 #define USER_MARSHAL_FC_USHORT 7 00644 #define USER_MARSHAL_FC_LONG 8 00645 #define USER_MARSHAL_FC_ULONG 9 00646 #define USER_MARSHAL_FC_FLOAT 10 00647 #define USER_MARSHAL_FC_HYPER 11 00648 #define USER_MARSHAL_FC_DOUBLE 12 00649 00650 RPCRTAPI unsigned char* RPC_ENTRY 00651 NdrUserMarshalSimpleTypeConvert( ULONG *pFlags, unsigned char *pBuffer, unsigned char FormatChar ); 00652 00653 CLIENT_CALL_RETURN RPC_VAR_ENTRY 00654 NdrClientCall2( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); 00655 CLIENT_CALL_RETURN RPC_VAR_ENTRY 00656 NdrClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); 00657 CLIENT_CALL_RETURN RPC_VAR_ENTRY 00658 NdrAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); 00659 CLIENT_CALL_RETURN RPC_VAR_ENTRY 00660 NdrDcomAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); 00661 00662 RPCRTAPI void RPC_ENTRY 00663 NdrServerCall2( PRPC_MESSAGE pRpcMsg ); 00664 RPCRTAPI void RPC_ENTRY 00665 NdrServerCall( PRPC_MESSAGE pRpcMsg ); 00666 RPCRTAPI void RPC_ENTRY 00667 NdrAsyncServerCall( PRPC_MESSAGE pRpcMsg ); 00668 00669 RPCRTAPI LONG RPC_ENTRY 00670 NdrStubCall2( struct IRpcStubBuffer* pThis, struct IRpcChannelBuffer* pChannel, PRPC_MESSAGE pRpcMsg, DWORD * pdwStubPhase ); 00671 RPCRTAPI LONG RPC_ENTRY 00672 NdrStubCall( struct IRpcStubBuffer* pThis, struct IRpcChannelBuffer* pChannel, PRPC_MESSAGE pRpcMsg, DWORD * pdwStubPhase ); 00673 RPCRTAPI LONG RPC_ENTRY 00674 NdrAsyncStubCall( struct IRpcStubBuffer* pThis, struct IRpcChannelBuffer* pChannel, PRPC_MESSAGE pRpcMsg, DWORD * pdwStubPhase ); 00675 RPCRTAPI LONG RPC_ENTRY 00676 NdrDcomAsyncStubCall( struct IRpcStubBuffer* pThis, struct IRpcChannelBuffer* pChannel, PRPC_MESSAGE pRpcMsg, DWORD * pdwStubPhase ); 00677 00678 RPCRTAPI void* RPC_ENTRY 00679 NdrAllocate( PMIDL_STUB_MESSAGE pStubMsg, SIZE_T Len ) __WINE_ALLOC_SIZE(2); 00680 00681 RPCRTAPI void RPC_ENTRY 00682 NdrClearOutParameters( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, void *ArgAddr ); 00683 00684 RPCRTAPI RPC_STATUS RPC_ENTRY 00685 NdrMapCommAndFaultStatus( PMIDL_STUB_MESSAGE pStubMsg, ULONG *pCommStatus, 00686 ULONG *pFaultStatus, RPC_STATUS Status_ ); 00687 00688 RPCRTAPI void* RPC_ENTRY 00689 NdrOleAllocate( SIZE_T Size ) __WINE_ALLOC_SIZE(1); 00690 RPCRTAPI void RPC_ENTRY 00691 NdrOleFree( void* NodeToFree ); 00692 00693 RPCRTAPI void RPC_ENTRY 00694 NdrClientInitialize( PRPC_MESSAGE pRpcMessage, PMIDL_STUB_MESSAGE pStubMsg, 00695 PMIDL_STUB_DESC pStubDesc, unsigned int ProcNum ); 00696 RPCRTAPI void RPC_ENTRY 00697 NdrClientInitializeNew( PRPC_MESSAGE pRpcMessage, PMIDL_STUB_MESSAGE pStubMsg, 00698 PMIDL_STUB_DESC pStubDesc, unsigned int ProcNum ); 00699 RPCRTAPI unsigned char* RPC_ENTRY 00700 NdrServerInitialize( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDesc ); 00701 RPCRTAPI unsigned char* RPC_ENTRY 00702 NdrServerInitializeNew( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDesc ); 00703 RPCRTAPI unsigned char* RPC_ENTRY 00704 NdrServerInitializeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDesc, PRPC_MESSAGE pRpcMsg ); 00705 RPCRTAPI void RPC_ENTRY 00706 NdrServerInitializeMarshall( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg ); 00707 RPCRTAPI void RPC_ENTRY 00708 NdrServerMarshall( struct IRpcStubBuffer *pThis, struct IRpcChannelBuffer *pChannel, PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); 00709 RPCRTAPI void RPC_ENTRY 00710 NdrServerUnmarshall( struct IRpcChannelBuffer *pChannel, PRPC_MESSAGE pRpcMsg, 00711 PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDesc, 00712 PFORMAT_STRING pFormat, void *pParamList ); 00713 RPCRTAPI unsigned char* RPC_ENTRY 00714 NdrGetBuffer( PMIDL_STUB_MESSAGE stubmsg, ULONG buflen, RPC_BINDING_HANDLE handle ); 00715 RPCRTAPI void RPC_ENTRY 00716 NdrFreeBuffer( PMIDL_STUB_MESSAGE pStubMsg ); 00717 RPCRTAPI unsigned char* RPC_ENTRY 00718 NdrSendReceive( PMIDL_STUB_MESSAGE stubmsg, unsigned char *buffer ); 00719 00720 RPCRTAPI unsigned char * RPC_ENTRY 00721 NdrNsGetBuffer( PMIDL_STUB_MESSAGE pStubMsg, ULONG BufferLength, RPC_BINDING_HANDLE Handle ); 00722 RPCRTAPI unsigned char * RPC_ENTRY 00723 NdrNsSendReceive( PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pBufferEnd, RPC_BINDING_HANDLE *pAutoHandle ); 00724 00725 RPCRTAPI RPC_STATUS RPC_ENTRY 00726 NdrGetDcomProtocolVersion( PMIDL_STUB_MESSAGE pStubMsg, RPC_VERSION *pVersion ); 00727 00728 RPCRTAPI PFULL_PTR_XLAT_TABLES RPC_ENTRY 00729 NdrFullPointerXlatInit( ULONG NumberOfPointers, XLAT_SIDE XlatSide ); 00730 RPCRTAPI void RPC_ENTRY 00731 NdrFullPointerXlatFree( PFULL_PTR_XLAT_TABLES pXlatTables ); 00732 RPCRTAPI int RPC_ENTRY 00733 NdrFullPointerQueryPointer( PFULL_PTR_XLAT_TABLES pXlatTables, void *pPointer, 00734 unsigned char QueryType, ULONG *pRefId ); 00735 RPCRTAPI int RPC_ENTRY 00736 NdrFullPointerQueryRefId( PFULL_PTR_XLAT_TABLES pXlatTables, ULONG RefId, 00737 unsigned char QueryType, void **ppPointer ); 00738 RPCRTAPI void RPC_ENTRY 00739 NdrFullPointerInsertRefId( PFULL_PTR_XLAT_TABLES pXlatTables, ULONG RefId, void *pPointer ); 00740 RPCRTAPI int RPC_ENTRY 00741 NdrFullPointerFree( PFULL_PTR_XLAT_TABLES pXlatTables, void *Pointer ); 00742 00743 RPCRTAPI void RPC_ENTRY 00744 NdrRpcSsEnableAllocate( PMIDL_STUB_MESSAGE pMessage ); 00745 RPCRTAPI void RPC_ENTRY 00746 NdrRpcSsDisableAllocate( PMIDL_STUB_MESSAGE pMessage ); 00747 RPCRTAPI void RPC_ENTRY 00748 NdrRpcSmSetClientToOsf( PMIDL_STUB_MESSAGE pMessage ); 00749 RPCRTAPI void * RPC_ENTRY 00750 NdrRpcSmClientAllocate( SIZE_T Size ) __WINE_ALLOC_SIZE(1); 00751 RPCRTAPI void RPC_ENTRY 00752 NdrRpcSmClientFree( void *NodeToFree ); 00753 RPCRTAPI void * RPC_ENTRY 00754 NdrRpcSsDefaultAllocate( SIZE_T Size ) __WINE_ALLOC_SIZE(1); 00755 RPCRTAPI void RPC_ENTRY 00756 NdrRpcSsDefaultFree( void *NodeToFree ); 00757 00758 RPCRTAPI RPC_STATUS RPC_ENTRY 00759 NdrGetUserMarshalInfo( ULONG *pFlags, ULONG InformationLevel, NDR_USER_MARSHAL_INFO *pMarshalInfo ); 00760 00761 #ifdef _MSC_VER 00762 #pragma warning(pop) 00763 #endif 00764 00765 #ifdef __cplusplus 00766 } 00767 #endif 00768 #endif /*__WINE_RPCNDR_H */ Generated on Sun May 27 2012 04:32:16 for ReactOS by
1.7.6.1
|