3076 lines
74 KiB
C
3076 lines
74 KiB
C
/*++
|
||
|
||
Copyright (c) 1992-1997 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
rpcndr.h
|
||
|
||
Abstract:
|
||
|
||
Definitions for stub data structures and prototypes of helper functions.
|
||
|
||
Author:
|
||
|
||
DonnaLi (01-01-91)
|
||
|
||
Environment:
|
||
|
||
DOS, Win 3.X, and Win/NT.
|
||
|
||
Revision History:
|
||
|
||
DONNALI 08-29-91 Start recording history
|
||
donnali 09-11-91 change conversion macros
|
||
donnali 09-18-91 check in files for moving
|
||
STEVEZ 10-15-91 Merge with NT tree
|
||
donnali 10-28-91 add prototype
|
||
donnali 11-19-91 bugfix for strings
|
||
MIKEMON 12-17-91 DCE runtime API conversion
|
||
donnali 03-24-92 change rpc public header f
|
||
STEVEZ 04-04-92 add nsi include
|
||
mikemon 04-18-92 security support and misc
|
||
DovhH 04-24-24 Changed signature of <int>_from_ndr
|
||
(to unsigned <int>)
|
||
Added <base_type>_array_from_ndr routines
|
||
RyszardK 06-17-93 Added support for hyper
|
||
VibhasC 09-11-93 Created rpcndrn.h
|
||
DKays 10-14-93 Fixed up rpcndrn.h MIDL 2.0
|
||
RyszardK 01-15-94 Merged in the midl 2.0 changes from rpcndrn.h
|
||
Stevebl 04-22-96 Hookole support changes to MIDL_*_INFO
|
||
RyszardK 05-20-97 Added async support, started version at 450.
|
||
|
||
--*/
|
||
|
||
// This version of the rpcproxy.h file corresponds to MIDL version 3.3.106
|
||
// used with NT5 beta env from build #1574 on.
|
||
|
||
#ifndef __RPCNDR_H_VERSION__
|
||
#define __RPCNDR_H_VERSION__ ( 450 )
|
||
#endif // __RPCNDR_H_VERSION__
|
||
|
||
|
||
#ifndef __RPCNDR_H__
|
||
#define __RPCNDR_H__
|
||
|
||
#ifdef __REQUIRED_RPCNDR_H_VERSION__
|
||
#if ( __RPCNDR_H_VERSION__ < __REQUIRED_RPCNDR_H_VERSION__ )
|
||
#error incorrect <rpcndr.h> version. Use the header that matches with the MIDL compiler.
|
||
#endif
|
||
#endif
|
||
|
||
|
||
//
|
||
// Set the packing level for RPC structures for Dos, Windows and Mac.
|
||
//
|
||
|
||
#if defined(__RPC_DOS__) || defined(__RPC_WIN16__) || defined(__RPC_MAC__)
|
||
#pragma pack(2)
|
||
#endif
|
||
|
||
#if defined(__RPC_MAC__)
|
||
#define _MAC_
|
||
#endif
|
||
|
||
#include <rpcnsip.h>
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
/****************************************************************************
|
||
|
||
Network Computing Architecture (NCA) definition:
|
||
|
||
Network Data Representation: (NDR) Label format:
|
||
An unsigned long (32 bits) with the following layout:
|
||
|
||
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
||
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
||
+---------------+---------------+---------------+-------+-------+
|
||
| Reserved | Reserved |Floating point | Int | Char |
|
||
| | |Representation | Rep. | Rep. |
|
||
+---------------+---------------+---------------+-------+-------+
|
||
|
||
Where
|
||
|
||
Reserved:
|
||
|
||
Must be zero (0) for NCA 1.5 and NCA 2.0.
|
||
|
||
Floating point Representation is:
|
||
|
||
0 - IEEE
|
||
1 - VAX
|
||
2 - Cray
|
||
3 - IBM
|
||
|
||
Int Rep. is Integer Representation:
|
||
|
||
0 - Big Endian
|
||
1 - Little Endian
|
||
|
||
Char Rep. is Character Representation:
|
||
|
||
0 - ASCII
|
||
1 - EBCDIC
|
||
|
||
The Microsoft Local Data Representation (for all platforms which are
|
||
of interest currently is edefined below:
|
||
|
||
****************************************************************************/
|
||
|
||
#define NDR_CHAR_REP_MASK (unsigned long)0X0000000FL
|
||
#define NDR_INT_REP_MASK (unsigned long)0X000000F0L
|
||
#define NDR_FLOAT_REP_MASK (unsigned long)0X0000FF00L
|
||
|
||
#define NDR_LITTLE_ENDIAN (unsigned long)0X00000010L
|
||
#define NDR_BIG_ENDIAN (unsigned long)0X00000000L
|
||
|
||
#define NDR_IEEE_FLOAT (unsigned long)0X00000000L
|
||
#define NDR_VAX_FLOAT (unsigned long)0X00000100L
|
||
|
||
#define NDR_ASCII_CHAR (unsigned long)0X00000000L
|
||
#define NDR_EBCDIC_CHAR (unsigned long)0X00000001L
|
||
|
||
#if defined(__RPC_MAC__)
|
||
#define NDR_LOCAL_DATA_REPRESENTATION (unsigned long)0X00000000L
|
||
#define NDR_LOCAL_ENDIAN NDR_BIG_ENDIAN
|
||
#else
|
||
#define NDR_LOCAL_DATA_REPRESENTATION (unsigned long)0X00000010L
|
||
#define NDR_LOCAL_ENDIAN NDR_LITTLE_ENDIAN
|
||
#endif
|
||
|
||
|
||
/****************************************************************************
|
||
* Macros for targeted platforms
|
||
****************************************************************************/
|
||
|
||
#if (0x500 <= _WIN32_WINNT)
|
||
#define TARGET_IS_NT50_OR_LATER 1
|
||
#else
|
||
#define TARGET_IS_NT50_OR_LATER 0
|
||
#endif
|
||
|
||
#if (defined(_WIN32_DCOM) || 0x400 <= _WIN32_WINNT)
|
||
#define TARGET_IS_NT40_OR_LATER 1
|
||
#else
|
||
#define TARGET_IS_NT40_OR_LATER 0
|
||
#endif
|
||
|
||
#if (0x400 <= WINVER)
|
||
#define TARGET_IS_NT351_OR_WIN95_OR_LATER 1
|
||
#else
|
||
#define TARGET_IS_NT351_OR_WIN95_OR_LATER 0
|
||
#endif
|
||
|
||
/****************************************************************************
|
||
* Other MIDL base types / predefined types:
|
||
****************************************************************************/
|
||
|
||
#define small char
|
||
typedef unsigned char byte;
|
||
typedef unsigned char boolean;
|
||
|
||
#ifndef _HYPER_DEFINED
|
||
#define _HYPER_DEFINED
|
||
|
||
#if !defined(__RPC_DOS__) && !defined(__RPC_WIN16__) && !defined(__RPC_MAC__) && (!defined(_M_IX86) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64))
|
||
#define hyper __int64
|
||
#define MIDL_uhyper unsigned __int64
|
||
#else
|
||
typedef double hyper;
|
||
typedef double MIDL_uhyper;
|
||
#endif
|
||
|
||
#endif // _HYPER_DEFINED
|
||
|
||
#ifndef _WCHAR_T_DEFINED
|
||
typedef unsigned short wchar_t;
|
||
#define _WCHAR_T_DEFINED
|
||
#endif
|
||
|
||
#ifndef _SIZE_T_DEFINED
|
||
typedef unsigned int size_t;
|
||
#define _SIZE_T_DEFINED
|
||
#endif
|
||
|
||
#ifdef __RPC_DOS__
|
||
#define __RPC_CALLEE __far __pascal
|
||
#endif
|
||
|
||
#ifdef __RPC_WIN16__
|
||
#define __RPC_CALLEE __far __pascal __export
|
||
#endif
|
||
|
||
#ifdef __RPC_WIN32__
|
||
#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
|
||
#define __RPC_CALLEE __stdcall
|
||
#else
|
||
#define __RPC_CALLEE
|
||
#endif
|
||
#endif
|
||
|
||
#ifdef __RPC_MAC__
|
||
#define __RPC_CALLEE __far
|
||
#endif
|
||
|
||
#ifndef __MIDL_USER_DEFINED
|
||
#define midl_user_allocate MIDL_user_allocate
|
||
#define midl_user_free MIDL_user_free
|
||
#define __MIDL_USER_DEFINED
|
||
#endif
|
||
|
||
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
|
||
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
|
||
|
||
#ifdef __RPC_WIN16__
|
||
#define RPC_VAR_ENTRY __export __cdecl
|
||
#else
|
||
#define RPC_VAR_ENTRY __cdecl
|
||
#endif
|
||
|
||
|
||
/* winnt only */
|
||
#if defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA)
|
||
#define __MIDL_DECLSPEC_DLLIMPORT __declspec(dllimport)
|
||
#define __MIDL_DECLSPEC_DLLEXPORT __declspec(dllexport)
|
||
#else
|
||
#define __MIDL_DECLSPEC_DLLIMPORT
|
||
#define __MIDL_DECLSPEC_DLLEXPORT
|
||
#endif
|
||
|
||
|
||
|
||
|
||
/****************************************************************************
|
||
* Context handle management related definitions:
|
||
*
|
||
* Client and Server Contexts.
|
||
*
|
||
****************************************************************************/
|
||
|
||
typedef void __RPC_FAR * NDR_CCONTEXT;
|
||
|
||
typedef struct
|
||
{
|
||
void __RPC_FAR * pad[2];
|
||
void __RPC_FAR * userContext;
|
||
} __RPC_FAR * NDR_SCONTEXT;
|
||
|
||
#define NDRSContextValue(hContext) (&(hContext)->userContext)
|
||
|
||
#define cbNDRContext 20 /* size of context on WIRE */
|
||
|
||
typedef void (__RPC_USER __RPC_FAR * NDR_RUNDOWN)(void __RPC_FAR * context);
|
||
|
||
typedef struct _SCONTEXT_QUEUE {
|
||
unsigned long NumberOfObjects;
|
||
NDR_SCONTEXT * ArrayOfObjects;
|
||
} SCONTEXT_QUEUE, __RPC_FAR * PSCONTEXT_QUEUE;
|
||
|
||
RPCRTAPI
|
||
RPC_BINDING_HANDLE
|
||
RPC_ENTRY
|
||
NDRCContextBinding (
|
||
IN NDR_CCONTEXT CContext
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NDRCContextMarshall (
|
||
IN NDR_CCONTEXT CContext,
|
||
OUT void __RPC_FAR *pBuff
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NDRCContextUnmarshall (
|
||
OUT NDR_CCONTEXT __RPC_FAR *pCContext,
|
||
IN RPC_BINDING_HANDLE hBinding,
|
||
IN void __RPC_FAR * pBuff,
|
||
IN unsigned long DataRepresentation
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NDRSContextMarshall (
|
||
IN NDR_SCONTEXT CContext,
|
||
OUT void __RPC_FAR *pBuff,
|
||
IN NDR_RUNDOWN userRunDownIn
|
||
);
|
||
|
||
RPCRTAPI
|
||
NDR_SCONTEXT
|
||
RPC_ENTRY
|
||
NDRSContextUnmarshall (
|
||
IN void __RPC_FAR *pBuff,
|
||
IN unsigned long DataRepresentation
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NDRSContextMarshallEx (
|
||
IN RPC_BINDING_HANDLE BindingHandle,
|
||
IN NDR_SCONTEXT CContext,
|
||
OUT void __RPC_FAR *pBuff,
|
||
IN NDR_RUNDOWN userRunDownIn
|
||
);
|
||
|
||
RPCRTAPI
|
||
NDR_SCONTEXT
|
||
RPC_ENTRY
|
||
NDRSContextUnmarshallEx (
|
||
IN RPC_BINDING_HANDLE BindingHandle,
|
||
IN void __RPC_FAR *pBuff,
|
||
IN unsigned long DataRepresentation
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
RpcSsDestroyClientContext (
|
||
IN void __RPC_FAR * __RPC_FAR * ContextHandle
|
||
);
|
||
|
||
|
||
/****************************************************************************
|
||
NDR conversion related definitions.
|
||
****************************************************************************/
|
||
|
||
#define byte_from_ndr(source, target) \
|
||
{ \
|
||
*(target) = *(*(char __RPC_FAR * __RPC_FAR *)&(source)->Buffer)++; \
|
||
}
|
||
|
||
#define byte_array_from_ndr(Source, LowerIndex, UpperIndex, Target) \
|
||
{ \
|
||
NDRcopy ( \
|
||
(((char __RPC_FAR *)(Target))+(LowerIndex)), \
|
||
(Source)->Buffer, \
|
||
(unsigned int)((UpperIndex)-(LowerIndex))); \
|
||
*(unsigned long __RPC_FAR *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); \
|
||
}
|
||
|
||
#define boolean_from_ndr(source, target) \
|
||
{ \
|
||
*(target) = *(*(char __RPC_FAR * __RPC_FAR *)&(source)->Buffer)++; \
|
||
}
|
||
|
||
#define boolean_array_from_ndr(Source, LowerIndex, UpperIndex, Target) \
|
||
{ \
|
||
NDRcopy ( \
|
||
(((char __RPC_FAR *)(Target))+(LowerIndex)), \
|
||
(Source)->Buffer, \
|
||
(unsigned int)((UpperIndex)-(LowerIndex))); \
|
||
*(unsigned long __RPC_FAR *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); \
|
||
}
|
||
|
||
#define small_from_ndr(source, target) \
|
||
{ \
|
||
*(target) = *(*(char __RPC_FAR * __RPC_FAR *)&(source)->Buffer)++; \
|
||
}
|
||
|
||
#define small_from_ndr_temp(source, target, format) \
|
||
{ \
|
||
*(target) = *(*(char __RPC_FAR * __RPC_FAR *)(source))++; \
|
||
}
|
||
|
||
#define small_array_from_ndr(Source, LowerIndex, UpperIndex, Target) \
|
||
{ \
|
||
NDRcopy ( \
|
||
(((char __RPC_FAR *)(Target))+(LowerIndex)), \
|
||
(Source)->Buffer, \
|
||
(unsigned int)((UpperIndex)-(LowerIndex))); \
|
||
*(unsigned long __RPC_FAR *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); \
|
||
}
|
||
|
||
/****************************************************************************
|
||
Platform specific mapping of c-runtime functions.
|
||
****************************************************************************/
|
||
|
||
#ifdef __RPC_DOS__
|
||
#define MIDL_ascii_strlen(string) \
|
||
_fstrlen(string)
|
||
#define MIDL_ascii_strcpy(target,source) \
|
||
_fstrcpy(target,source)
|
||
#define MIDL_memset(s,c,n) \
|
||
_fmemset(s,c,n)
|
||
#endif
|
||
|
||
#ifdef __RPC_WIN16__
|
||
#define MIDL_ascii_strlen(string) \
|
||
_fstrlen(string)
|
||
#define MIDL_ascii_strcpy(target,source) \
|
||
_fstrcpy(target,source)
|
||
#define MIDL_memset(s,c,n) \
|
||
_fmemset(s,c,n)
|
||
#endif
|
||
|
||
#if defined(__RPC_WIN32__) || defined(__RPC_MAC__)
|
||
#define MIDL_ascii_strlen(string) \
|
||
strlen(string)
|
||
#define MIDL_ascii_strcpy(target,source) \
|
||
strcpy(target,source)
|
||
#define MIDL_memset(s,c,n) \
|
||
memset(s,c,n)
|
||
#endif
|
||
|
||
/****************************************************************************
|
||
Ndr Library helper function prototypes for MIDL 1.0 ndr functions.
|
||
****************************************************************************/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NDRcopy (
|
||
IN void __RPC_FAR *pTarget,
|
||
IN void __RPC_FAR *pSource,
|
||
IN unsigned int size
|
||
);
|
||
|
||
RPCRTAPI
|
||
size_t
|
||
RPC_ENTRY
|
||
MIDL_wchar_strlen (
|
||
IN wchar_t __RPC_FAR * s
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
MIDL_wchar_strcpy (
|
||
OUT void __RPC_FAR * t,
|
||
IN wchar_t __RPC_FAR * s
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
char_from_ndr (
|
||
IN OUT PRPC_MESSAGE SourceMessage,
|
||
OUT unsigned char __RPC_FAR * Target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
char_array_from_ndr (
|
||
IN OUT PRPC_MESSAGE SourceMessage,
|
||
IN unsigned long LowerIndex,
|
||
IN unsigned long UpperIndex,
|
||
OUT unsigned char __RPC_FAR * Target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
short_from_ndr (
|
||
IN OUT PRPC_MESSAGE source,
|
||
OUT unsigned short __RPC_FAR * target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
short_array_from_ndr(
|
||
IN OUT PRPC_MESSAGE SourceMessage,
|
||
IN unsigned long LowerIndex,
|
||
IN unsigned long UpperIndex,
|
||
OUT unsigned short __RPC_FAR * Target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
short_from_ndr_temp (
|
||
IN OUT unsigned char __RPC_FAR * __RPC_FAR * source,
|
||
OUT unsigned short __RPC_FAR * target,
|
||
IN unsigned long format
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
long_from_ndr (
|
||
IN OUT PRPC_MESSAGE source,
|
||
OUT unsigned long __RPC_FAR * target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
long_array_from_ndr(
|
||
IN OUT PRPC_MESSAGE SourceMessage,
|
||
IN unsigned long LowerIndex,
|
||
IN unsigned long UpperIndex,
|
||
OUT unsigned long __RPC_FAR * Target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
long_from_ndr_temp (
|
||
IN OUT unsigned char __RPC_FAR * __RPC_FAR * source,
|
||
OUT unsigned long __RPC_FAR * target,
|
||
IN unsigned long format
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
enum_from_ndr(
|
||
IN OUT PRPC_MESSAGE SourceMessage,
|
||
OUT unsigned int __RPC_FAR * Target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
float_from_ndr (
|
||
IN OUT PRPC_MESSAGE SourceMessage,
|
||
OUT void __RPC_FAR * Target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
float_array_from_ndr (
|
||
IN OUT PRPC_MESSAGE SourceMessage,
|
||
IN unsigned long LowerIndex,
|
||
IN unsigned long UpperIndex,
|
||
OUT void __RPC_FAR * Target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
double_from_ndr (
|
||
IN OUT PRPC_MESSAGE SourceMessage,
|
||
OUT void __RPC_FAR * Target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
double_array_from_ndr (
|
||
IN OUT PRPC_MESSAGE SourceMessage,
|
||
IN unsigned long LowerIndex,
|
||
IN unsigned long UpperIndex,
|
||
OUT void __RPC_FAR * Target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
hyper_from_ndr (
|
||
IN OUT PRPC_MESSAGE source,
|
||
OUT hyper __RPC_FAR * target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
hyper_array_from_ndr(
|
||
IN OUT PRPC_MESSAGE SourceMessage,
|
||
IN unsigned long LowerIndex,
|
||
IN unsigned long UpperIndex,
|
||
OUT hyper __RPC_FAR * Target
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
hyper_from_ndr_temp (
|
||
IN OUT unsigned char __RPC_FAR * __RPC_FAR * source,
|
||
OUT hyper __RPC_FAR * target,
|
||
IN unsigned long format
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
data_from_ndr (
|
||
PRPC_MESSAGE source,
|
||
void __RPC_FAR * target,
|
||
char __RPC_FAR * format,
|
||
unsigned char MscPak
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
data_into_ndr (
|
||
void __RPC_FAR * source,
|
||
PRPC_MESSAGE target,
|
||
char __RPC_FAR * format,
|
||
unsigned char MscPak
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
tree_into_ndr (
|
||
void __RPC_FAR * source,
|
||
PRPC_MESSAGE target,
|
||
char __RPC_FAR * format,
|
||
unsigned char MscPak
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
data_size_ndr (
|
||
void __RPC_FAR * source,
|
||
PRPC_MESSAGE target,
|
||
char __RPC_FAR * format,
|
||
unsigned char MscPak
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
tree_size_ndr (
|
||
void __RPC_FAR * source,
|
||
PRPC_MESSAGE target,
|
||
char __RPC_FAR * format,
|
||
unsigned char MscPak
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
tree_peek_ndr (
|
||
PRPC_MESSAGE source,
|
||
unsigned char __RPC_FAR * __RPC_FAR * buffer,
|
||
char __RPC_FAR * format,
|
||
unsigned char MscPak
|
||
);
|
||
|
||
RPCRTAPI
|
||
void __RPC_FAR *
|
||
RPC_ENTRY
|
||
midl_allocate (
|
||
size_t size
|
||
);
|
||
|
||
/****************************************************************************
|
||
MIDL 2.0 ndr definitions.
|
||
****************************************************************************/
|
||
|
||
typedef unsigned long error_status_t;
|
||
|
||
#define _midl_ma1( p, cast ) *(*( cast **)&p)++
|
||
#define _midl_ma2( p, cast ) *(*( cast **)&p)++
|
||
#define _midl_ma4( p, cast ) *(*( cast **)&p)++
|
||
#define _midl_ma8( p, cast ) *(*( cast **)&p)++
|
||
|
||
#define _midl_unma1( p, cast ) *(( cast *)p)++
|
||
#define _midl_unma2( p, cast ) *(( cast *)p)++
|
||
#define _midl_unma3( p, cast ) *(( cast *)p)++
|
||
#define _midl_unma4( p, cast ) *(( cast *)p)++
|
||
|
||
// Some alignment specific macros.
|
||
|
||
|
||
#define _midl_fa2( p ) (p = (RPC_BUFPTR )((unsigned long)(p+1) & 0xfffffffe))
|
||
#define _midl_fa4( p ) (p = (RPC_BUFPTR )((unsigned long)(p+3) & 0xfffffffc))
|
||
#define _midl_fa8( p ) (p = (RPC_BUFPTR )((unsigned long)(p+7) & 0xfffffff8))
|
||
|
||
#define _midl_addp( p, n ) (p += n)
|
||
|
||
// Marshalling macros
|
||
|
||
#define _midl_marsh_lhs( p, cast ) *(*( cast **)&p)++
|
||
#define _midl_marsh_up( mp, p ) *(*(unsigned long **)&mp)++ = (unsigned long)p
|
||
#define _midl_advmp( mp ) *(*(unsigned long **)&mp)++
|
||
#define _midl_unmarsh_up( p ) (*(*(unsigned long **)&p)++)
|
||
|
||
|
||
////////////////////////////////////////////////////////////////////////////
|
||
// Ndr macros.
|
||
////////////////////////////////////////////////////////////////////////////
|
||
|
||
#define NdrMarshConfStringHdr( p, s, l ) (_midl_ma4( p, unsigned long) = s, \
|
||
_midl_ma4( p, unsigned long) = 0, \
|
||
_midl_ma4( p, unsigned long) = l)
|
||
|
||
#define NdrUnMarshConfStringHdr(p, s, l) ((s=_midl_unma4(p,unsigned long),\
|
||
(_midl_addp(p,4)), \
|
||
(l=_midl_unma4(p,unsigned long))
|
||
|
||
#define NdrMarshCCtxtHdl(pc,p) (NDRCContextMarshall( (NDR_CCONTEXT)pc, p ),p+20)
|
||
|
||
#define NdrUnMarshCCtxtHdl(pc,p,h,drep) \
|
||
(NDRCContextUnmarshall((NDR_CONTEXT)pc,h,p,drep), p+20)
|
||
|
||
#define NdrUnMarshSCtxtHdl(pc, p,drep) (pc = NdrSContextUnMarshall(p,drep ))
|
||
|
||
|
||
#define NdrMarshSCtxtHdl(pc,p,rd) (NdrSContextMarshall((NDR_SCONTEXT)pc,p, (NDR_RUNDOWN)rd)
|
||
|
||
#define NdrFieldOffset(s,f) (long)(& (((s __RPC_FAR *)0)->f))
|
||
#define NdrFieldPad(s,f,p,t) (NdrFieldOffset(s,f) - NdrFieldOffset(s,p) - sizeof(t))
|
||
|
||
#if defined(__RPC_MAC__)
|
||
#define NdrFcShort(s) (unsigned char)(s >> 8), (unsigned char)(s & 0xff)
|
||
#define NdrFcLong(s) (unsigned char)(s >> 24), (unsigned char)((s & 0x00ff0000) >> 16), \
|
||
(unsigned char)((s & 0x0000ff00) >> 8), (unsigned char)(s & 0xff)
|
||
#else
|
||
#define NdrFcShort(s) (unsigned char)(s & 0xff), (unsigned char)(s >> 8)
|
||
#define NdrFcLong(s) (unsigned char)(s & 0xff), (unsigned char)((s & 0x0000ff00) >> 8), \
|
||
(unsigned char)((s & 0x00ff0000) >> 16), (unsigned char)(s >> 24)
|
||
#endif // Mac
|
||
|
||
//
|
||
// On the server side, the following exceptions are mapped to
|
||
// the bad stub data exception if -error stub_data is used.
|
||
//
|
||
|
||
#define RPC_BAD_STUB_DATA_EXCEPTION_FILTER \
|
||
( (RpcExceptionCode() == STATUS_ACCESS_VIOLATION) || \
|
||
(RpcExceptionCode() == STATUS_DATATYPE_MISALIGNMENT) || \
|
||
(RpcExceptionCode() == RPC_X_BAD_STUB_DATA) )
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// Some stub helper functions.
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
|
||
////////////////////////////////////////////////////////////////////////////
|
||
// Stub helper structures.
|
||
////////////////////////////////////////////////////////////////////////////
|
||
|
||
struct _MIDL_STUB_MESSAGE;
|
||
struct _MIDL_STUB_DESC;
|
||
struct _FULL_PTR_XLAT_TABLES;
|
||
|
||
typedef unsigned char __RPC_FAR * RPC_BUFPTR;
|
||
typedef unsigned long RPC_LENGTH;
|
||
|
||
// Expression evaluation callback routine prototype.
|
||
typedef void (__RPC_USER __RPC_FAR * EXPR_EVAL)( struct _MIDL_STUB_MESSAGE __RPC_FAR * );
|
||
|
||
typedef const unsigned char __RPC_FAR * PFORMAT_STRING;
|
||
|
||
/*
|
||
* Multidimensional conformant/varying array struct.
|
||
*/
|
||
typedef struct
|
||
{
|
||
long Dimension;
|
||
|
||
/* These fields MUST be (unsigned long *) */
|
||
unsigned long __RPC_FAR * BufferConformanceMark;
|
||
unsigned long __RPC_FAR * BufferVarianceMark;
|
||
|
||
/* Count arrays, used for top level arrays in -Os stubs */
|
||
unsigned long __RPC_FAR * MaxCountArray;
|
||
unsigned long __RPC_FAR * OffsetArray;
|
||
unsigned long __RPC_FAR * ActualCountArray;
|
||
} ARRAY_INFO, __RPC_FAR *PARRAY_INFO;
|
||
|
||
/*
|
||
* Pipe related definitions.
|
||
*/
|
||
|
||
typedef struct _NDR_PIPE_DESC * PNDR_PIPE_DESC;
|
||
typedef struct _NDR_PIPE_MESSAGE * PNDR_PIPE_MESSAGE;
|
||
|
||
typedef struct _NDR_ASYNC_MESSAGE * PNDR_ASYNC_MESSAGE;
|
||
|
||
/*
|
||
* MIDL Stub Message
|
||
*/
|
||
#if !defined(__RPC_DOS__) && !defined(__RPC_WIN16__) && !defined(__RPC_MAC__)
|
||
#include <pshpack4.h>
|
||
#endif
|
||
|
||
typedef struct _MIDL_STUB_MESSAGE
|
||
{
|
||
/* RPC message structure. */
|
||
PRPC_MESSAGE RpcMsg;
|
||
|
||
/* Pointer into RPC message buffer. */
|
||
unsigned char __RPC_FAR * Buffer;
|
||
|
||
/*
|
||
* These are used internally by the Ndr routines to mark the beginning
|
||
* and end of an incoming RPC buffer.
|
||
*/
|
||
unsigned char __RPC_FAR * BufferStart;
|
||
unsigned char __RPC_FAR * BufferEnd;
|
||
|
||
/*
|
||
* Used internally by the Ndr routines as a place holder in the buffer.
|
||
* On the marshalling side it's used to mark the location where conformance
|
||
* size should be marshalled.
|
||
* On the unmarshalling side it's used to mark the location in the buffer
|
||
* used during pointer unmarshalling to base pointer offsets off of.
|
||
*/
|
||
unsigned char __RPC_FAR * BufferMark;
|
||
|
||
/* Set by the buffer sizing routines. */
|
||
unsigned long BufferLength;
|
||
|
||
/* Set by the memory sizing routines. */
|
||
unsigned long MemorySize;
|
||
|
||
/* Pointer to user memory. */
|
||
unsigned char __RPC_FAR * Memory;
|
||
|
||
/* Is the Ndr routine begin called from a client side stub. */
|
||
int IsClient;
|
||
|
||
/* Can the buffer be re-used for memory on unmarshalling. */
|
||
int ReuseBuffer;
|
||
|
||
/* Holds the current pointer to an allocate all nodes memory block. */
|
||
unsigned char __RPC_FAR * AllocAllNodesMemory;
|
||
|
||
/* Used for debugging asserts only, remove later. */
|
||
unsigned char __RPC_FAR * AllocAllNodesMemoryEnd;
|
||
|
||
/*
|
||
* Stuff needed while handling complex structures
|
||
*/
|
||
|
||
/* Ignore imbeded pointers while computing buffer or memory sizes. */
|
||
int IgnoreEmbeddedPointers;
|
||
|
||
/*
|
||
* This marks the location in the buffer where pointees of a complex
|
||
* struct reside.
|
||
*/
|
||
unsigned char __RPC_FAR * PointerBufferMark;
|
||
|
||
/*
|
||
* Used to catch errors in SendReceive.
|
||
*/
|
||
unsigned char fBufferValid;
|
||
|
||
/*
|
||
* Obsolete unused field (formerly MaxContextHandleNumber).
|
||
*/
|
||
unsigned char Unused;
|
||
|
||
/*
|
||
* Used internally by the Ndr routines. Holds the max counts for
|
||
* a conformant array.
|
||
*/
|
||
unsigned long MaxCount;
|
||
|
||
/*
|
||
* Used internally by the Ndr routines. Holds the offsets for a varying
|
||
* array.
|
||
*/
|
||
unsigned long Offset;
|
||
|
||
/*
|
||
* Used internally by the Ndr routines. Holds the actual counts for
|
||
* a varying array.
|
||
*/
|
||
unsigned long ActualCount;
|
||
|
||
/* Allocation and Free routine to be used by the Ndr routines. */
|
||
void __RPC_FAR * (__RPC_FAR __RPC_API * pfnAllocate)(size_t);
|
||
void (__RPC_FAR __RPC_API * pfnFree)(void __RPC_FAR *);
|
||
|
||
/*
|
||
* Top of parameter stack. Used for "single call" stubs during marshalling
|
||
* to hold the beginning of the parameter list on the stack. Needed to
|
||
* extract parameters which hold attribute values for top level arrays and
|
||
* pointers.
|
||
*/
|
||
unsigned char __RPC_FAR * StackTop;
|
||
|
||
/*
|
||
* Fields used for the transmit_as and represent_as objects.
|
||
* For represent_as the mapping is: presented=local, transmit=named.
|
||
*/
|
||
unsigned char __RPC_FAR * pPresentedType;
|
||
unsigned char __RPC_FAR * pTransmitType;
|
||
|
||
/*
|
||
* When we first construct a binding on the client side, stick it
|
||
* in the rpcmessage and later call RpcGetBuffer, the handle field
|
||
* in the rpcmessage is changed. That's fine except that we need to
|
||
* have that original handle for use in unmarshalling context handles
|
||
* (the second argument in NDRCContextUnmarshall to be exact). So
|
||
* stash the contructed handle here and extract it when needed.
|
||
*/
|
||
handle_t SavedHandle;
|
||
|
||
/*
|
||
* Pointer back to the stub descriptor. Use this to get all handle info.
|
||
*/
|
||
const struct _MIDL_STUB_DESC __RPC_FAR * StubDesc;
|
||
|
||
/*
|
||
* Full pointer stuff.
|
||
*/
|
||
struct _FULL_PTR_XLAT_TABLES __RPC_FAR * FullPtrXlatTables;
|
||
|
||
unsigned long FullPtrRefId;
|
||
|
||
/*
|
||
* flags
|
||
*/
|
||
|
||
int fCheckBounds;
|
||
|
||
int fInDontFree :1;
|
||
int fDontCallFreeInst :1;
|
||
int fInOnlyParam :1;
|
||
int fHasReturn :1;
|
||
|
||
unsigned long dwDestContext;
|
||
void __RPC_FAR * pvDestContext;
|
||
|
||
NDR_SCONTEXT * SavedContextHandles;
|
||
|
||
long ParamNumber;
|
||
|
||
struct IRpcChannelBuffer __RPC_FAR * pRpcChannelBuffer;
|
||
|
||
PARRAY_INFO pArrayInfo;
|
||
|
||
/*
|
||
* This is where the Beta2 stub message ends.
|
||
*/
|
||
|
||
unsigned long __RPC_FAR * SizePtrCountArray;
|
||
unsigned long __RPC_FAR * SizePtrOffsetArray;
|
||
unsigned long __RPC_FAR * SizePtrLengthArray;
|
||
|
||
/*
|
||
* Interpreter argument queue. Used on server side only.
|
||
*/
|
||
void __RPC_FAR * pArgQueue;
|
||
|
||
unsigned long dwStubPhase;
|
||
|
||
/*
|
||
* Pipe descriptor, defined for the 4.0 release.
|
||
*/
|
||
PNDR_PIPE_DESC pPipeDesc;
|
||
|
||
/*
|
||
* Async message pointer, an NT 5.0 feature.
|
||
*/
|
||
PNDR_ASYNC_MESSAGE pAsyncMsg;
|
||
|
||
unsigned long Reserved[3];
|
||
|
||
/*
|
||
* Fields up to this point present since the 3.50 release.
|
||
*/
|
||
|
||
} MIDL_STUB_MESSAGE, __RPC_FAR *PMIDL_STUB_MESSAGE;
|
||
|
||
#if !defined(__RPC_DOS__) && !defined(__RPC_WIN16__) && !defined(__RPC_MAC__)
|
||
#include <poppack.h>
|
||
#endif
|
||
|
||
/*
|
||
* Generic handle bind/unbind routine pair.
|
||
*/
|
||
typedef void __RPC_FAR *
|
||
(__RPC_FAR __RPC_API * GENERIC_BINDING_ROUTINE)
|
||
(void __RPC_FAR *);
|
||
typedef void
|
||
(__RPC_FAR __RPC_API * GENERIC_UNBIND_ROUTINE)
|
||
(void __RPC_FAR *, unsigned char __RPC_FAR *);
|
||
|
||
typedef struct _GENERIC_BINDING_ROUTINE_PAIR
|
||
{
|
||
GENERIC_BINDING_ROUTINE pfnBind;
|
||
GENERIC_UNBIND_ROUTINE pfnUnbind;
|
||
} GENERIC_BINDING_ROUTINE_PAIR, __RPC_FAR *PGENERIC_BINDING_ROUTINE_PAIR;
|
||
|
||
typedef struct __GENERIC_BINDING_INFO
|
||
{
|
||
void __RPC_FAR * pObj;
|
||
unsigned int Size;
|
||
GENERIC_BINDING_ROUTINE pfnBind;
|
||
GENERIC_UNBIND_ROUTINE pfnUnbind;
|
||
} GENERIC_BINDING_INFO, __RPC_FAR *PGENERIC_BINDING_INFO;
|
||
|
||
// typedef EXPR_EVAL - see above
|
||
// typedefs for xmit_as
|
||
|
||
#if (defined(_MSC_VER)) && !defined(MIDL_PASS)
|
||
// a Microsoft C++ compiler
|
||
#define NDR_SHAREABLE __inline
|
||
#else
|
||
#define NDR_SHAREABLE static
|
||
#endif
|
||
|
||
|
||
typedef void (__RPC_FAR __RPC_USER * XMIT_HELPER_ROUTINE)
|
||
( PMIDL_STUB_MESSAGE );
|
||
|
||
typedef struct _XMIT_ROUTINE_QUINTUPLE
|
||
{
|
||
XMIT_HELPER_ROUTINE pfnTranslateToXmit;
|
||
XMIT_HELPER_ROUTINE pfnTranslateFromXmit;
|
||
XMIT_HELPER_ROUTINE pfnFreeXmit;
|
||
XMIT_HELPER_ROUTINE pfnFreeInst;
|
||
} XMIT_ROUTINE_QUINTUPLE, __RPC_FAR *PXMIT_ROUTINE_QUINTUPLE;
|
||
|
||
typedef unsigned long
|
||
(__RPC_FAR __RPC_USER * USER_MARSHAL_SIZING_ROUTINE)
|
||
(unsigned long __RPC_FAR *,
|
||
unsigned long,
|
||
void __RPC_FAR * );
|
||
|
||
typedef unsigned char __RPC_FAR *
|
||
(__RPC_FAR __RPC_USER * USER_MARSHAL_MARSHALLING_ROUTINE)
|
||
(unsigned long __RPC_FAR *,
|
||
unsigned char __RPC_FAR * ,
|
||
void __RPC_FAR * );
|
||
|
||
typedef unsigned char __RPC_FAR *
|
||
(__RPC_FAR __RPC_USER * USER_MARSHAL_UNMARSHALLING_ROUTINE)
|
||
(unsigned long __RPC_FAR *,
|
||
unsigned char __RPC_FAR * ,
|
||
void __RPC_FAR * );
|
||
|
||
typedef void (__RPC_FAR __RPC_USER * USER_MARSHAL_FREEING_ROUTINE)
|
||
(unsigned long __RPC_FAR *,
|
||
void __RPC_FAR * );
|
||
|
||
typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE
|
||
{
|
||
USER_MARSHAL_SIZING_ROUTINE pfnBufferSize;
|
||
USER_MARSHAL_MARSHALLING_ROUTINE pfnMarshall;
|
||
USER_MARSHAL_UNMARSHALLING_ROUTINE pfnUnmarshall;
|
||
USER_MARSHAL_FREEING_ROUTINE pfnFree;
|
||
} USER_MARSHAL_ROUTINE_QUADRUPLE;
|
||
|
||
typedef struct _USER_MARSHAL_CB
|
||
{
|
||
unsigned long Flags;
|
||
PMIDL_STUB_MESSAGE pStubMsg;
|
||
PFORMAT_STRING pReserve;
|
||
} USER_MARSHAL_CB;
|
||
|
||
|
||
#define USER_CALL_CTXT_MASK(f) ((f) & 0x00ff)
|
||
#define USER_CALL_AUX_MASK(f) ((f) & 0xff00)
|
||
#define GET_USER_DATA_REP(f) ((f) >> 16)
|
||
|
||
#define USER_CALL_IS_ASYNC 0x0100 /* aux flag: in an [async] call */
|
||
|
||
|
||
typedef struct _MALLOC_FREE_STRUCT
|
||
{
|
||
void __RPC_FAR * (__RPC_FAR __RPC_USER * pfnAllocate)(size_t);
|
||
void (__RPC_FAR __RPC_USER * pfnFree)(void __RPC_FAR *);
|
||
} MALLOC_FREE_STRUCT;
|
||
|
||
typedef struct _COMM_FAULT_OFFSETS
|
||
{
|
||
short CommOffset;
|
||
short FaultOffset;
|
||
} COMM_FAULT_OFFSETS;
|
||
|
||
/*
|
||
* MIDL Stub Descriptor
|
||
*/
|
||
|
||
typedef struct _MIDL_STUB_DESC
|
||
{
|
||
|
||
void __RPC_FAR * RpcInterfaceInformation;
|
||
|
||
void __RPC_FAR * (__RPC_FAR __RPC_API * pfnAllocate)(size_t);
|
||
void (__RPC_FAR __RPC_API * pfnFree)(void __RPC_FAR *);
|
||
|
||
union
|
||
{
|
||
handle_t __RPC_FAR * pAutoHandle;
|
||
handle_t __RPC_FAR * pPrimitiveHandle;
|
||
PGENERIC_BINDING_INFO pGenericBindingInfo;
|
||
} IMPLICIT_HANDLE_INFO;
|
||
|
||
const NDR_RUNDOWN __RPC_FAR * apfnNdrRundownRoutines;
|
||
const GENERIC_BINDING_ROUTINE_PAIR __RPC_FAR * aGenericBindingRoutinePairs;
|
||
|
||
const EXPR_EVAL __RPC_FAR * apfnExprEval;
|
||
|
||
const XMIT_ROUTINE_QUINTUPLE __RPC_FAR * aXmitQuintuple;
|
||
|
||
const unsigned char __RPC_FAR * pFormatTypes;
|
||
|
||
int fCheckBounds;
|
||
|
||
/* Ndr library version. */
|
||
unsigned long Version;
|
||
|
||
/*
|
||
* Reserved for future use. (no reserves )
|
||
*/
|
||
|
||
MALLOC_FREE_STRUCT __RPC_FAR * pMallocFreeStruct;
|
||
|
||
long MIDLVersion;
|
||
|
||
const COMM_FAULT_OFFSETS __RPC_FAR * CommFaultOffsets;
|
||
|
||
// New fields for version 3.0+
|
||
|
||
const USER_MARSHAL_ROUTINE_QUADRUPLE __RPC_FAR * aUserMarshalQuadruple;
|
||
|
||
long Reserved1;
|
||
long Reserved2;
|
||
long Reserved3;
|
||
long Reserved4;
|
||
long Reserved5;
|
||
|
||
} MIDL_STUB_DESC;
|
||
|
||
typedef const MIDL_STUB_DESC __RPC_FAR * PMIDL_STUB_DESC;
|
||
|
||
typedef void __RPC_FAR * PMIDL_XMIT_TYPE;
|
||
|
||
/*
|
||
* MIDL Stub Format String. This is a const in the stub.
|
||
*/
|
||
#if !defined( RC_INVOKED )
|
||
#pragma warning( disable:4200 )
|
||
#endif
|
||
typedef struct _MIDL_FORMAT_STRING
|
||
{
|
||
short Pad;
|
||
unsigned char Format[];
|
||
} MIDL_FORMAT_STRING;
|
||
#if !defined( RC_INVOKED )
|
||
#pragma warning( default:4200 )
|
||
#endif
|
||
|
||
/*
|
||
* Stub thunk used for some interpreted server stubs.
|
||
*/
|
||
typedef void (__RPC_FAR __RPC_API * STUB_THUNK)( PMIDL_STUB_MESSAGE );
|
||
|
||
typedef long (__RPC_FAR __RPC_API * SERVER_ROUTINE)();
|
||
|
||
/*
|
||
* Server Interpreter's information strucuture.
|
||
*/
|
||
typedef struct _MIDL_SERVER_INFO_
|
||
{
|
||
PMIDL_STUB_DESC pStubDesc;
|
||
const SERVER_ROUTINE * DispatchTable;
|
||
PFORMAT_STRING ProcString;
|
||
const unsigned short * FmtStringOffset;
|
||
const STUB_THUNK * ThunkTable;
|
||
PFORMAT_STRING LocalFormatTypes;
|
||
PFORMAT_STRING LocalProcString;
|
||
const unsigned short * LocalFmtStringOffset;
|
||
} MIDL_SERVER_INFO, *PMIDL_SERVER_INFO;
|
||
|
||
/*
|
||
* Stubless object proxy information structure.
|
||
*/
|
||
typedef struct _MIDL_STUBLESS_PROXY_INFO
|
||
{
|
||
PMIDL_STUB_DESC pStubDesc;
|
||
PFORMAT_STRING ProcFormatString;
|
||
const unsigned short __RPC_FAR * FormatStringOffset;
|
||
PFORMAT_STRING LocalFormatTypes;
|
||
PFORMAT_STRING LocalProcString;
|
||
const unsigned short __RPC_FAR * LocalFmtStringOffset;
|
||
} MIDL_STUBLESS_PROXY_INFO;
|
||
|
||
typedef MIDL_STUBLESS_PROXY_INFO __RPC_FAR * PMIDL_STUBLESS_PROXY_INFO;
|
||
|
||
/*
|
||
* This is the return value from NdrClientCall.
|
||
*/
|
||
typedef union _CLIENT_CALL_RETURN
|
||
{
|
||
void __RPC_FAR * Pointer;
|
||
long Simple;
|
||
} CLIENT_CALL_RETURN;
|
||
|
||
/*
|
||
* Full pointer data structures.
|
||
*/
|
||
|
||
typedef enum
|
||
{
|
||
XLAT_SERVER = 1,
|
||
XLAT_CLIENT
|
||
} XLAT_SIDE;
|
||
|
||
/*
|
||
* Stores the translation for the conversion from a full pointer into it's
|
||
* corresponding ref id.
|
||
*/
|
||
typedef struct _FULL_PTR_TO_REFID_ELEMENT
|
||
{
|
||
struct _FULL_PTR_TO_REFID_ELEMENT __RPC_FAR * Next;
|
||
|
||
void __RPC_FAR * Pointer;
|
||
unsigned long RefId;
|
||
unsigned char State;
|
||
} FULL_PTR_TO_REFID_ELEMENT, __RPC_FAR *PFULL_PTR_TO_REFID_ELEMENT;
|
||
|
||
/*
|
||
* Full pointer translation tables.
|
||
*/
|
||
typedef struct _FULL_PTR_XLAT_TABLES
|
||
{
|
||
/*
|
||
* Ref id to pointer translation information.
|
||
*/
|
||
struct
|
||
{
|
||
void __RPC_FAR *__RPC_FAR * XlatTable;
|
||
unsigned char __RPC_FAR * StateTable;
|
||
unsigned long NumberOfEntries;
|
||
} RefIdToPointer;
|
||
|
||
/*
|
||
* Pointer to ref id translation information.
|
||
*/
|
||
struct
|
||
{
|
||
PFULL_PTR_TO_REFID_ELEMENT __RPC_FAR * XlatTable;
|
||
unsigned long NumberOfBuckets;
|
||
unsigned long HashMask;
|
||
} PointerToRefId;
|
||
|
||
/*
|
||
* Next ref id to use.
|
||
*/
|
||
unsigned long NextRefId;
|
||
|
||
/*
|
||
* Keep track of the translation size we're handling : server or client.
|
||
* This tells us when we have to do reverse translations when we insert
|
||
* new translations. On the server we must insert a pointer-to-refid
|
||
* translation whenever we insert a refid-to-pointer translation, and
|
||
* vica versa for the client.
|
||
*/
|
||
XLAT_SIDE XlatSide;
|
||
} FULL_PTR_XLAT_TABLES, __RPC_FAR *PFULL_PTR_XLAT_TABLES;
|
||
|
||
/***************************************************************************
|
||
** New MIDL 2.0 Ndr routine templates
|
||
***************************************************************************/
|
||
|
||
/*
|
||
* Marshall routines
|
||
*/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrSimpleTypeMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
unsigned char FormatChar
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrPointerMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Structures */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrSimpleStructMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrConformantStructMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrConformantVaryingStructMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrHardStructMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrComplexStructMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Arrays */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrFixedArrayMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrConformantArrayMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrConformantVaryingArrayMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrVaryingArrayMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrComplexArrayMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Strings */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrNonConformantStringMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrConformantStringMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Unions */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrEncapsulatedUnionMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrNonEncapsulatedUnionMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Byte count pointer */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrByteCountPointerMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Transmit as and represent as*/
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrXmitOrRepAsMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* User_marshal */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrUserMarshalMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Cairo interface pointer */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrInterfacePointerMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Context handles */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrClientContextMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
NDR_CCONTEXT ContextHandle,
|
||
int fCheck
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrServerContextMarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
NDR_SCONTEXT ContextHandle,
|
||
NDR_RUNDOWN RundownRoutine
|
||
);
|
||
|
||
/*
|
||
* Unmarshall routines
|
||
*/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrSimpleTypeUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
unsigned char FormatChar
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrPointerUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
/* Structures */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrSimpleStructUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrConformantStructUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrConformantVaryingStructUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrHardStructUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrComplexStructUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
/* Arrays */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrFixedArrayUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrConformantArrayUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrConformantVaryingArrayUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrVaryingArrayUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrComplexArrayUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
/* Strings */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrNonConformantStringUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrConformantStringUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
/* Unions */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrEncapsulatedUnionUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrNonEncapsulatedUnionUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
/* Byte count pointer */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrByteCountPointerUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
/* Transmit as and represent as*/
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrXmitOrRepAsUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
/* User_marshal */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrUserMarshalUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
/* Cairo interface pointer */
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrInterfacePointerUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * __RPC_FAR * ppMemory,
|
||
PFORMAT_STRING pFormat,
|
||
unsigned char fMustAlloc
|
||
);
|
||
|
||
/* Context handles */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrClientContextUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
NDR_CCONTEXT __RPC_FAR * pContextHandle,
|
||
RPC_BINDING_HANDLE BindHandle
|
||
);
|
||
|
||
RPCRTAPI
|
||
NDR_SCONTEXT
|
||
RPC_ENTRY
|
||
NdrServerContextUnmarshall(
|
||
PMIDL_STUB_MESSAGE pStubMsg
|
||
);
|
||
|
||
/*
|
||
* Buffer sizing routines
|
||
*/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrPointerBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Structures */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrSimpleStructBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConformantStructBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConformantVaryingStructBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrHardStructBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrComplexStructBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Arrays */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrFixedArrayBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConformantArrayBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConformantVaryingArrayBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrVaryingArrayBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrComplexArrayBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Strings */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConformantStringBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrNonConformantStringBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Unions */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrEncapsulatedUnionBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrNonEncapsulatedUnionBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Byte count pointer */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrByteCountPointerBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Transmit as and represent as*/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrXmitOrRepAsBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* User_marshal */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrUserMarshalBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Cairo Interface pointer */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrInterfacePointerBufferSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
// Context Handle size
|
||
//
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrContextHandleSize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/*
|
||
* Memory sizing routines
|
||
*/
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrPointerMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Structures */
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrSimpleStructMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrConformantStructMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrConformantVaryingStructMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrHardStructMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrComplexStructMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Arrays */
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrFixedArrayMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrConformantArrayMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrConformantVaryingArrayMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrVaryingArrayMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrComplexArrayMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Strings */
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrConformantStringMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrNonConformantStringMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Unions */
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrEncapsulatedUnionMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrNonEncapsulatedUnionMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Transmit as and represent as*/
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrXmitOrRepAsMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* User_marshal */
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrUserMarshalMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Cairo Interface pointer */
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrInterfacePointerMemorySize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/*
|
||
* Freeing routines
|
||
*/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrPointerFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Structures */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrSimpleStructFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConformantStructFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConformantVaryingStructFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrHardStructFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrComplexStructFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Arrays */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrFixedArrayFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConformantArrayFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConformantVaryingArrayFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrVaryingArrayFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrComplexArrayFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Unions */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrEncapsulatedUnionFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrNonEncapsulatedUnionFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Byte count */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrByteCountPointerFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Transmit as and represent as*/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrXmitOrRepAsFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* User_marshal */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrUserMarshalFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Cairo Interface pointer */
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrInterfacePointerFree(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/*
|
||
* Endian conversion routine.
|
||
*/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConvert2(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat,
|
||
long NumberParams
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrConvert(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
#define USER_MARSHAL_FC_BYTE 1
|
||
#define USER_MARSHAL_FC_CHAR 2
|
||
#define USER_MARSHAL_FC_SMALL 3
|
||
#define USER_MARSHAL_FC_USMALL 4
|
||
#define USER_MARSHAL_FC_WCHAR 5
|
||
#define USER_MARSHAL_FC_SHORT 6
|
||
#define USER_MARSHAL_FC_USHORT 7
|
||
#define USER_MARSHAL_FC_LONG 8
|
||
#define USER_MARSHAL_FC_ULONG 9
|
||
#define USER_MARSHAL_FC_FLOAT 10
|
||
#define USER_MARSHAL_FC_HYPER 11
|
||
#define USER_MARSHAL_FC_DOUBLE 12
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrUserMarshalSimpleTypeConvert(
|
||
unsigned long * pFlags,
|
||
unsigned char * pBuffer,
|
||
unsigned char FormatChar
|
||
);
|
||
|
||
/*
|
||
* Auxilary routines
|
||
*/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrClientInitializeNew(
|
||
PRPC_MESSAGE pRpcMsg,
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PMIDL_STUB_DESC pStubDescriptor,
|
||
unsigned int ProcNum
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrServerInitializeNew(
|
||
PRPC_MESSAGE pRpcMsg,
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PMIDL_STUB_DESC pStubDescriptor
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrServerInitializePartial(
|
||
PRPC_MESSAGE pRpcMsg,
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PMIDL_STUB_DESC pStubDescriptor,
|
||
unsigned long RequestedBufferSize
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrClientInitialize(
|
||
PRPC_MESSAGE pRpcMsg,
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PMIDL_STUB_DESC pStubDescriptor,
|
||
unsigned int ProcNum
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrServerInitialize(
|
||
PRPC_MESSAGE pRpcMsg,
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PMIDL_STUB_DESC pStubDescriptor
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrServerInitializeUnmarshall (
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PMIDL_STUB_DESC pStubDescriptor,
|
||
PRPC_MESSAGE pRpcMsg
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrServerInitializeMarshall (
|
||
PRPC_MESSAGE pRpcMsg,
|
||
PMIDL_STUB_MESSAGE pStubMsg
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrGetBuffer(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned long BufferLength,
|
||
RPC_BINDING_HANDLE Handle
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrNsGetBuffer(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned long BufferLength,
|
||
RPC_BINDING_HANDLE Handle
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrGetPipeBuffer(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned long BufferLength,
|
||
RPC_BINDING_HANDLE Handle );
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrGetPartialBuffer(
|
||
PMIDL_STUB_MESSAGE pStubMsg );
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrSendReceive(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR* pBufferEnd
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned char __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrNsSendReceive(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR * pBufferEnd,
|
||
RPC_BINDING_HANDLE __RPC_FAR * pAutoHandle
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrPipeSendReceive(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PNDR_PIPE_DESC pPipeDesc
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrFreeBuffer(
|
||
PMIDL_STUB_MESSAGE pStubMsg
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_STATUS
|
||
RPC_ENTRY
|
||
NdrGetDcomProtocolVersion(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
RPC_VERSION * pVersion );
|
||
|
||
|
||
/*
|
||
* Pipe specific calls
|
||
*/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrPipesInitialize(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pParamDesc,
|
||
PNDR_PIPE_DESC pPipeDesc,
|
||
PNDR_PIPE_MESSAGE pPipeMsg,
|
||
char __RPC_FAR * pStackTop,
|
||
unsigned long NumberParams );
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrPipePull(
|
||
char __RPC_FAR * pState,
|
||
void __RPC_FAR * buf,
|
||
unsigned long esize,
|
||
unsigned long __RPC_FAR * ecount );
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrPipePush(
|
||
char __RPC_FAR * pState,
|
||
void __RPC_FAR * buf,
|
||
unsigned long ecount );
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrIsAppDoneWithPipes(
|
||
PNDR_PIPE_DESC pPipeDesc
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrPipesDone(
|
||
PMIDL_STUB_MESSAGE pStubMsg
|
||
);
|
||
|
||
|
||
/*
|
||
* Interpeter calls.
|
||
*/
|
||
|
||
/* client */
|
||
|
||
CLIENT_CALL_RETURN RPC_VAR_ENTRY
|
||
NdrClientCall2(
|
||
PMIDL_STUB_DESC pStubDescriptor,
|
||
PFORMAT_STRING pFormat,
|
||
...
|
||
);
|
||
|
||
CLIENT_CALL_RETURN RPC_VAR_ENTRY
|
||
NdrClientCall(
|
||
PMIDL_STUB_DESC pStubDescriptor,
|
||
PFORMAT_STRING pFormat,
|
||
...
|
||
);
|
||
|
||
CLIENT_CALL_RETURN RPC_VAR_ENTRY
|
||
NdrAsyncClientCall(
|
||
PMIDL_STUB_DESC pStubDescriptor,
|
||
PFORMAT_STRING pFormat,
|
||
...
|
||
);
|
||
|
||
/* server */
|
||
typedef enum {
|
||
STUB_UNMARSHAL,
|
||
STUB_CALL_SERVER,
|
||
STUB_MARSHAL,
|
||
STUB_CALL_SERVER_NO_HRESULT
|
||
}STUB_PHASE;
|
||
|
||
typedef enum {
|
||
PROXY_CALCSIZE,
|
||
PROXY_GETBUFFER,
|
||
PROXY_MARSHAL,
|
||
PROXY_SENDRECEIVE,
|
||
PROXY_UNMARSHAL
|
||
}PROXY_PHASE;
|
||
|
||
struct IRpcStubBuffer; // Forward declaration
|
||
|
||
RPCRTAPI
|
||
long
|
||
RPC_ENTRY
|
||
NdrAsyncStubCall(
|
||
struct IRpcStubBuffer * pThis,
|
||
struct IRpcChannelBuffer * pChannel,
|
||
PRPC_MESSAGE pRpcMsg,
|
||
unsigned long * pdwStubPhase
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrAsyncServerCall(
|
||
PRPC_MESSAGE pRpcMsg
|
||
);
|
||
|
||
RPCRTAPI
|
||
long
|
||
RPC_ENTRY
|
||
NdrStubCall2(
|
||
struct IRpcStubBuffer __RPC_FAR * pThis,
|
||
struct IRpcChannelBuffer __RPC_FAR * pChannel,
|
||
PRPC_MESSAGE pRpcMsg,
|
||
unsigned long __RPC_FAR * pdwStubPhase
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrServerCall2(
|
||
PRPC_MESSAGE pRpcMsg
|
||
);
|
||
|
||
RPCRTAPI
|
||
long
|
||
RPC_ENTRY
|
||
NdrStubCall (
|
||
struct IRpcStubBuffer __RPC_FAR * pThis,
|
||
struct IRpcChannelBuffer __RPC_FAR * pChannel,
|
||
PRPC_MESSAGE pRpcMsg,
|
||
unsigned long __RPC_FAR * pdwStubPhase
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrServerCall(
|
||
PRPC_MESSAGE pRpcMsg
|
||
);
|
||
|
||
RPCRTAPI
|
||
int
|
||
RPC_ENTRY
|
||
NdrServerUnmarshall(
|
||
struct IRpcChannelBuffer __RPC_FAR * pChannel,
|
||
PRPC_MESSAGE pRpcMsg,
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PMIDL_STUB_DESC pStubDescriptor,
|
||
PFORMAT_STRING pFormat,
|
||
void __RPC_FAR * pParamList
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrServerMarshall(
|
||
struct IRpcStubBuffer __RPC_FAR * pThis,
|
||
struct IRpcChannelBuffer __RPC_FAR * pChannel,
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat
|
||
);
|
||
|
||
/* Comm and Fault status */
|
||
|
||
RPCRTAPI
|
||
RPC_STATUS
|
||
RPC_ENTRY
|
||
NdrMapCommAndFaultStatus(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned long __RPC_FAR * pCommStatus,
|
||
unsigned long __RPC_FAR * pFaultStatus,
|
||
RPC_STATUS Status
|
||
);
|
||
|
||
/* Helper routines */
|
||
|
||
RPCRTAPI
|
||
int
|
||
RPC_ENTRY
|
||
NdrSH_UPDecision(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem,
|
||
RPC_BUFPTR pBuffer
|
||
);
|
||
|
||
RPCRTAPI
|
||
int
|
||
RPC_ENTRY
|
||
NdrSH_TLUPDecision(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem
|
||
);
|
||
|
||
RPCRTAPI
|
||
int
|
||
RPC_ENTRY
|
||
NdrSH_TLUPDecisionBuffer(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem
|
||
);
|
||
|
||
RPCRTAPI
|
||
int
|
||
RPC_ENTRY
|
||
NdrSH_IfAlloc(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem,
|
||
unsigned long Count
|
||
);
|
||
|
||
RPCRTAPI
|
||
int
|
||
RPC_ENTRY
|
||
NdrSH_IfAllocRef(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem,
|
||
unsigned long Count
|
||
);
|
||
|
||
RPCRTAPI
|
||
int
|
||
RPC_ENTRY
|
||
NdrSH_IfAllocSet(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem,
|
||
unsigned long Count
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_BUFPTR
|
||
RPC_ENTRY
|
||
NdrSH_IfCopy(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem,
|
||
unsigned long Count
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_BUFPTR
|
||
RPC_ENTRY
|
||
NdrSH_IfAllocCopy(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
unsigned char __RPC_FAR *__RPC_FAR * pPtrInMem,
|
||
unsigned long Count
|
||
);
|
||
|
||
RPCRTAPI
|
||
unsigned long
|
||
RPC_ENTRY
|
||
NdrSH_Copy(
|
||
unsigned char __RPC_FAR * pStubMsg,
|
||
unsigned char __RPC_FAR * pPtrInMem,
|
||
unsigned long Count
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrSH_IfFree(
|
||
PMIDL_STUB_MESSAGE pMessage,
|
||
unsigned char __RPC_FAR * pPtr );
|
||
|
||
|
||
RPCRTAPI
|
||
RPC_BUFPTR
|
||
RPC_ENTRY
|
||
NdrSH_StringMarshall(
|
||
PMIDL_STUB_MESSAGE pMessage,
|
||
unsigned char __RPC_FAR * pMemory,
|
||
unsigned long Count,
|
||
int Size );
|
||
|
||
RPCRTAPI
|
||
RPC_BUFPTR
|
||
RPC_ENTRY
|
||
NdrSH_StringUnMarshall(
|
||
PMIDL_STUB_MESSAGE pMessage,
|
||
unsigned char __RPC_FAR *__RPC_FAR * pMemory,
|
||
int Size );
|
||
|
||
/****************************************************************************
|
||
MIDL 2.0 memory package: rpc_ss_* rpc_sm_*
|
||
****************************************************************************/
|
||
|
||
typedef void __RPC_FAR * RPC_SS_THREAD_HANDLE;
|
||
|
||
typedef void __RPC_FAR * __RPC_API
|
||
RPC_CLIENT_ALLOC (
|
||
IN size_t Size
|
||
);
|
||
|
||
typedef void __RPC_API
|
||
RPC_CLIENT_FREE (
|
||
IN void __RPC_FAR * Ptr
|
||
);
|
||
|
||
/*++
|
||
RpcSs* package
|
||
--*/
|
||
|
||
RPCRTAPI
|
||
void __RPC_FAR *
|
||
RPC_ENTRY
|
||
RpcSsAllocate (
|
||
IN size_t Size
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
RpcSsDisableAllocate (
|
||
void
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
RpcSsEnableAllocate (
|
||
void
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
RpcSsFree (
|
||
IN void __RPC_FAR * NodeToFree
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_SS_THREAD_HANDLE
|
||
RPC_ENTRY
|
||
RpcSsGetThreadHandle (
|
||
void
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
RpcSsSetClientAllocFree (
|
||
IN RPC_CLIENT_ALLOC __RPC_FAR * ClientAlloc,
|
||
IN RPC_CLIENT_FREE __RPC_FAR * ClientFree
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
RpcSsSetThreadHandle (
|
||
IN RPC_SS_THREAD_HANDLE Id
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
RpcSsSwapClientAllocFree (
|
||
IN RPC_CLIENT_ALLOC __RPC_FAR * ClientAlloc,
|
||
IN RPC_CLIENT_FREE __RPC_FAR * ClientFree,
|
||
OUT RPC_CLIENT_ALLOC __RPC_FAR * __RPC_FAR * OldClientAlloc,
|
||
OUT RPC_CLIENT_FREE __RPC_FAR * __RPC_FAR * OldClientFree
|
||
);
|
||
|
||
/*++
|
||
RpcSm* package
|
||
--*/
|
||
|
||
RPCRTAPI
|
||
void __RPC_FAR *
|
||
RPC_ENTRY
|
||
RpcSmAllocate (
|
||
IN size_t Size,
|
||
OUT RPC_STATUS __RPC_FAR * pStatus
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_STATUS
|
||
RPC_ENTRY
|
||
RpcSmClientFree (
|
||
IN void __RPC_FAR * pNodeToFree
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_STATUS
|
||
RPC_ENTRY
|
||
RpcSmDestroyClientContext (
|
||
IN void __RPC_FAR * __RPC_FAR * ContextHandle
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_STATUS
|
||
RPC_ENTRY
|
||
RpcSmDisableAllocate (
|
||
void
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_STATUS
|
||
RPC_ENTRY
|
||
RpcSmEnableAllocate (
|
||
void
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_STATUS
|
||
RPC_ENTRY
|
||
RpcSmFree (
|
||
IN void __RPC_FAR * NodeToFree
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_SS_THREAD_HANDLE
|
||
RPC_ENTRY
|
||
RpcSmGetThreadHandle (
|
||
OUT RPC_STATUS __RPC_FAR * pStatus
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_STATUS
|
||
RPC_ENTRY
|
||
RpcSmSetClientAllocFree (
|
||
IN RPC_CLIENT_ALLOC __RPC_FAR * ClientAlloc,
|
||
IN RPC_CLIENT_FREE __RPC_FAR * ClientFree
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_STATUS
|
||
RPC_ENTRY
|
||
RpcSmSetThreadHandle (
|
||
IN RPC_SS_THREAD_HANDLE Id
|
||
);
|
||
|
||
RPCRTAPI
|
||
RPC_STATUS
|
||
RPC_ENTRY
|
||
RpcSmSwapClientAllocFree (
|
||
IN RPC_CLIENT_ALLOC __RPC_FAR * ClientAlloc,
|
||
IN RPC_CLIENT_FREE __RPC_FAR * ClientFree,
|
||
OUT RPC_CLIENT_ALLOC __RPC_FAR * __RPC_FAR * OldClientAlloc,
|
||
OUT RPC_CLIENT_FREE __RPC_FAR * __RPC_FAR * OldClientFree
|
||
);
|
||
|
||
/*++
|
||
Ndr stub entry points
|
||
--*/
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrRpcSsEnableAllocate(
|
||
PMIDL_STUB_MESSAGE pMessage );
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrRpcSsDisableAllocate(
|
||
PMIDL_STUB_MESSAGE pMessage );
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrRpcSmSetClientToOsf(
|
||
PMIDL_STUB_MESSAGE pMessage );
|
||
|
||
RPCRTAPI
|
||
void __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrRpcSmClientAllocate (
|
||
IN size_t Size
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrRpcSmClientFree (
|
||
IN void __RPC_FAR * NodeToFree
|
||
);
|
||
|
||
RPCRTAPI
|
||
void __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrRpcSsDefaultAllocate (
|
||
IN size_t Size
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrRpcSsDefaultFree (
|
||
IN void __RPC_FAR * NodeToFree
|
||
);
|
||
|
||
/****************************************************************************
|
||
end of memory package: rpc_ss_* rpc_sm_*
|
||
****************************************************************************/
|
||
|
||
/****************************************************************************
|
||
* Full Pointer APIs
|
||
****************************************************************************/
|
||
|
||
RPCRTAPI
|
||
PFULL_PTR_XLAT_TABLES
|
||
RPC_ENTRY
|
||
NdrFullPointerXlatInit(
|
||
unsigned long NumberOfPointers,
|
||
XLAT_SIDE XlatSide
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrFullPointerXlatFree(
|
||
PFULL_PTR_XLAT_TABLES pXlatTables
|
||
);
|
||
|
||
RPCRTAPI
|
||
int
|
||
RPC_ENTRY
|
||
NdrFullPointerQueryPointer(
|
||
PFULL_PTR_XLAT_TABLES pXlatTables,
|
||
void __RPC_FAR * pPointer,
|
||
unsigned char QueryType,
|
||
unsigned long __RPC_FAR * pRefId
|
||
);
|
||
|
||
RPCRTAPI
|
||
int
|
||
RPC_ENTRY
|
||
NdrFullPointerQueryRefId(
|
||
PFULL_PTR_XLAT_TABLES pXlatTables,
|
||
unsigned long RefId,
|
||
unsigned char QueryType,
|
||
void __RPC_FAR *__RPC_FAR * ppPointer
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrFullPointerInsertRefId(
|
||
PFULL_PTR_XLAT_TABLES pXlatTables,
|
||
unsigned long RefId,
|
||
void __RPC_FAR * pPointer
|
||
);
|
||
|
||
RPCRTAPI
|
||
int
|
||
RPC_ENTRY
|
||
NdrFullPointerFree(
|
||
PFULL_PTR_XLAT_TABLES pXlatTables,
|
||
void __RPC_FAR * Pointer
|
||
);
|
||
|
||
RPCRTAPI
|
||
void __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrAllocate(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
size_t Len
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrClearOutParameters(
|
||
PMIDL_STUB_MESSAGE pStubMsg,
|
||
PFORMAT_STRING pFormat,
|
||
void __RPC_FAR * ArgAddr
|
||
);
|
||
|
||
|
||
/****************************************************************************
|
||
* Proxy APIs
|
||
****************************************************************************/
|
||
|
||
RPCRTAPI
|
||
void __RPC_FAR *
|
||
RPC_ENTRY
|
||
NdrOleAllocate (
|
||
IN size_t Size
|
||
);
|
||
|
||
RPCRTAPI
|
||
void
|
||
RPC_ENTRY
|
||
NdrOleFree (
|
||
IN void __RPC_FAR * NodeToFree
|
||
);
|
||
|
||
#ifdef CONST_VTABLE
|
||
#define CONST_VTBL const
|
||
#else
|
||
#define CONST_VTBL
|
||
#endif
|
||
|
||
/****************************************************************************
|
||
* Special things for VC5 Com support
|
||
****************************************************************************/
|
||
|
||
#if _MSC_VER >= 1100
|
||
#define DECLSPEC_UUID(x) __declspec(uuid(x))
|
||
#define MIDL_INTERFACE(x) struct __declspec(uuid(x)) __declspec(novtable)
|
||
#else
|
||
#define DECLSPEC_UUID(x)
|
||
#define MIDL_INTERFACE(x) struct
|
||
#endif
|
||
|
||
#if _MSC_VER >= 1100
|
||
#define EXTERN_GUID(itf,l1,s1,s2,c1,c2,c3,c4,c5,c6,c7,c8) \
|
||
EXTERN_C const IID __declspec(selectany) itf = {l1,s1,s2,{c1,c2,c3,c4,c5,c6,c7,c8}}
|
||
#else
|
||
#define EXTERN_GUID(itf,l1,s1,s2,c1,c2,c3,c4,c5,c6,c7,c8) EXTERN_C const IID itf
|
||
#endif
|
||
|
||
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
// Reset the packing level for DOS, Windows and Mac.
|
||
|
||
#if defined(__RPC_DOS__) || defined(__RPC_WIN16__) || defined(__RPC_MAC__)
|
||
#pragma pack()
|
||
#endif
|
||
|
||
#endif /* __RPCNDR_H__ */
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|