📄 rpcndr.h
字号:
} 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
);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -