FreeRDP
ndr.h File Reference
#include <winpr/rpc.h>
#include <winpr/wtypes.h>
This graph shows which files directly or indirectly include this file:

Data Structures

union  CLIENT_CALL_RETURN
 
struct  RPC_VERSION
 
struct  PRPC_SYNTAX_IDENTIFIER
 
struct  PRPC_MESSAGE
 
struct  RPC_DISPATCH_TABLE
 
struct  PRPC_PROTSEQ_ENDPOINT
 
struct  PRPC_SERVER_INTERFACE
 
struct  PRPC_CLIENT_INTERFACE
 
struct  PGENERIC_BINDING_ROUTINE_PAIR
 
struct  PGENERIC_BINDING_INFO
 
struct  PMIDL_STUB_MESSAGE
 
struct  PXMIT_ROUTINE_QUINTUPLE
 
struct  USER_MARSHAL_ROUTINE_QUADRUPLE
 
struct  MALLOC_FREE_STRUCT
 
struct  COMM_FAULT_OFFSETS
 
struct  MIDL_STUB_DESC
 
struct  INTERPRETER_FLAGS
 
struct  PARAM_ATTRIBUTES
 
struct  INTERPRETER_OPT_FLAGS
 
struct  INTERPRETER_OPT_FLAGS2
 
struct  NDR_CORRELATION_FLAGS
 
struct  NDR_PARAM
 
struct  NDR_PROC_HEADER_EXTS
 
struct  PNDR_PROC_HEADER
 
struct  PNDR_OI2_PROC_HEADER
 

Macros

#define __RPC_WIN32__   1
 
#define TARGET_IS_NT50_OR_LATER   1
 
#define RPC_MGR_EPV   void
 
#define FC_ALLOCATE_ALL_NODES   0x01
 
#define FC_DONT_FREE   0x02
 
#define FC_ALLOCED_ON_STACK   0x03
 
#define FC_SIMPLE_POINTER   0x04
 
#define FC_POINTER_DEREF   0x05
 
#define HANDLE_PARAM_IS_VIA_PTR   0x80
 
#define HANDLE_PARAM_IS_IN   0x40
 
#define HANDLE_PARAM_IS_OUT   0x20
 
#define HANDLE_PARAM_IS_RETURN   0x21
 
#define NDR_STRICT_CONTEXT_HANDLE   0x08
 
#define NDR_CONTEXT_HANDLE_NO_SERIALIZE   0x04
 
#define NDR_CONTEXT_HANDLE_SERIALIZE   0x02
 
#define NDR_CONTEXT_HANDLE_CANNOT_BE_NULL   0x01
 
#define FC_NORMAL_CONFORMANCE   0x00
 
#define FC_POINTER_CONFORMANCE   0x10
 
#define FC_TOP_LEVEL_CONFORMANCE   0x20
 
#define FC_CONSTANT_CONFORMANCE   0x40
 
#define FC_TOP_LEVEL_MULTID_CONFORMANCE   0x80
 
#define FC_ZERO   0x00
 
#define FC_BYTE   0x01
 
#define FC_CHAR   0x02
 
#define FC_SMALL   0x03
 
#define FC_USMALL   0x04
 
#define FC_WCHAR   0x05
 
#define FC_SHORT   0x06
 
#define FC_USHORT   0x07
 
#define FC_LONG   0x08
 
#define FC_ULONG   0x09
 
#define FC_FLOAT   0x0A
 
#define FC_HYPER   0x0B
 
#define FC_DOUBLE   0x0C
 
#define FC_ENUM16   0x0D
 
#define FC_ENUM32   0x0E
 
#define FC_IGNORE   0x0F
 
#define FC_ERROR_STATUS_T   0x10
 
#define FC_RP   0x11
 
#define FC_UP   0x12
 
#define FC_OP   0x13
 
#define FC_FP   0x14
 
#define FC_STRUCT   0x15
 
#define FC_PSTRUCT   0x16
 
#define FC_CSTRUCT   0x17
 
#define FC_CPSTRUCT   0x18
 
#define FC_CVSTRUCT   0x19
 
#define FC_BOGUS_STRUCT   0x1A
 
#define FC_CARRAY   0x1B
 
#define FC_CVARRAY   0x1C
 
#define FC_SMFARRAY   0x1D
 
#define FC_LGFARRAY   0x1E
 
#define FC_SMVARRAY   0x1F
 
#define FC_LGVARRAY   0x20
 
#define FC_BOGUS_ARRAY   0x21
 
#define FC_C_CSTRING   0x22
 
#define FC_C_BSTRING   0x23
 
#define FC_C_SSTRING   0x24
 
#define FC_C_WSTRING   0x25
 
#define FC_CSTRING   0x26
 
#define FC_BSTRING   0x27
 
#define FC_SSTRING   0x28
 
#define FC_WSTRING   0x29
 
#define FC_ENCAPSULATED_UNION   0x2A
 
#define FC_NON_ENCAPSULATED_UNION   0x2B
 
#define FC_BYTE_COUNT_POINTER   0x2C
 
#define FC_TRANSMIT_AS   0x2D
 
#define FC_REPRESENT_AS   0x2E
 
#define FC_IP   0x2F
 
#define FC_BIND_CONTEXT   0x30
 
#define FC_BIND_GENERIC   0x31
 
#define FC_BIND_PRIMITIVE   0x32
 
#define FC_AUTO_HANDLE   0x33
 
#define FC_CALLBACK_HANDLE   0x34
 
#define FC_UNUSED1   0x35
 
#define FC_POINTER   0x36
 
#define FC_ALIGNM2   0x37
 
#define FC_ALIGNM4   0x38
 
#define FC_ALIGNM8   0x39
 
#define FC_UNUSED2   0x3A
 
#define FC_UNUSED3   0x3B
 
#define FC_UNUSED4   0x3C
 
#define FC_STRUCTPAD1   0x3D
 
#define FC_STRUCTPAD2   0x3E
 
#define FC_STRUCTPAD3   0x3F
 
#define FC_STRUCTPAD4   0x40
 
#define FC_STRUCTPAD5   0x41
 
#define FC_STRUCTPAD6   0x42
 
#define FC_STRUCTPAD7   0x43
 
#define FC_STRING_SIZED   0x44
 
#define FC_UNUSED5   0x45
 
#define FC_NO_REPEAT   0x46
 
#define FC_FIXED_REPEAT   0x47
 
#define FC_VARIABLE_REPEAT   0x48
 
#define FC_FIXED_OFFSET   0x49
 
#define FC_VARIABLE_OFFSET   0x4A
 
#define FC_PP   0x4B
 
#define FC_EMBEDDED_COMPLEX   0x4C
 
#define FC_IN_PARAM   0x4D
 
#define FC_IN_PARAM_BASETYPE   0x4E
 
#define FC_IN_PARAM_NO_FREE_INST   0x4F
 
#define FC_IN_OUT_PARAM   0x50
 
#define FC_OUT_PARAM   0x51
 
#define FC_RETURN_PARAM   0x52
 
#define FC_RETURN_PARAM_BASETYPE   0x53
 
#define FC_DEREFERENCE   0x54
 
#define FC_DIV_2   0x55
 
#define FC_MULT_2   0x56
 
#define FC_ADD_1   0x57
 
#define FC_SUB_1   0x58
 
#define FC_CALLBACK   0x59
 
#define FC_CONSTANT_IID   0x5A
 
#define FC_END   0x5B
 
#define FC_PAD   0x5C
 
#define FC_SPLIT_DEREFERENCE   0x74
 
#define FC_SPLIT_DIV_2   0x75
 
#define FC_SPLIT_MULT_2   0x76
 
#define FC_SPLIT_ADD_1   0x77
 
#define FC_SPLIT_SUB_1   0x78
 
#define FC_SPLIT_CALLBACK   0x79
 
#define FC_HARD_STRUCT   0xB1
 
#define FC_TRANSMIT_AS_PTR   0xB2
 
#define FC_REPRESENT_AS_PTR   0xB3
 
#define FC_USER_MARSHAL   0xB4
 
#define FC_PIPE   0xB5
 
#define FC_BLKHOLE   0xB6
 
#define FC_RANGE   0xB7
 
#define FC_INT3264   0xB8
 
#define FC_UINT3264   0xB9
 
#define FC_END_OF_UNIVERSE   0xBA
 
#define NdrFcShort(s)   (byte)(s & 0xFF), (byte)(s >> 8)
 
#define NdrFcLong(s)
 

Typedefs

typedef void(* RPC_DISPATCH_FUNCTION) (PRPC_MESSAGE Message)
 
typedef struct RPC_DISPATCH_TABLEPRPC_DISPATCH_TABLE
 
typedef void *(* GENERIC_BINDING_ROUTINE) (void *)
 
typedef void(* GENERIC_UNBIND_ROUTINE) (void *, unsigned char *)
 
typedef void(* NDR_RUNDOWN) (void *context)
 
typedef void(* NDR_NOTIFY_ROUTINE) (void)
 
typedef const unsigned char * PFORMAT_STRING
 
typedef MIDL_STUB_DESC * PMIDL_STUB_DESC
 
typedef void(* EXPR_EVAL) (struct _MIDL_STUB_MESSAGE *)
 
typedef void(* XMIT_HELPER_ROUTINE) (PMIDL_STUB_MESSAGE)
 
typedef ULONG(* USER_MARSHAL_SIZING_ROUTINE) (ULONG *, ULONG, void *)
 
typedef unsigned char *(* USER_MARSHAL_MARSHALLING_ROUTINE) (ULONG *, unsigned char *, void *)
 
typedef unsigned char *(* USER_MARSHAL_UNMARSHALLING_ROUTINE) (ULONG *, unsigned char *, void *)
 
typedef void(* USER_MARSHAL_FREEING_ROUTINE) (ULONG *, void *)
 
typedef voidNDR_CS_ROUTINES
 
typedef voidNDR_EXPR_DESC
 
typedef struct INTERPRETER_FLAGSPINTERPRETER_FLAGS
 
typedef struct PARAM_ATTRIBUTESPPARAM_ATTRIBUTES
 
typedef struct INTERPRETER_OPT_FLAGSPINTERPRETER_OPT_FLAGS
 
typedef struct INTERPRETER_OPT_FLAGS2PINTERPRETER_OPT_FLAGS2
 
typedef void(* NDR_TYPE_SIZE_ROUTINE) (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat)
 
typedef void(* NDR_TYPE_MARSHALL_ROUTINE) (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, unsigned char FormatChar)
 
typedef void(* NDR_TYPE_UNMARSHALL_ROUTINE) (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, unsigned char FormatChar)
 
typedef void(* NDR_TYPE_FREE_ROUTINE) (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat)
 

Enumerations

enum  NDR_PHASE { NDR_PHASE_SIZE, NDR_PHASE_MARSHALL, NDR_PHASE_UNMARSHALL, NDR_PHASE_FREE }
 

Functions

WINPR_API CLIENT_CALL_RETURN NdrClientCall2 (PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat,...)
 

Macro Definition Documentation

#define __RPC_WIN32__   1

WinPR: Windows Portable Runtime Network Data Representation (NDR)

Copyright 2012 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

#define FC_ADD_1   0x57
#define FC_ALIGNM2   0x37
#define FC_ALIGNM4   0x38
#define FC_ALIGNM8   0x39
#define FC_ALLOCATE_ALL_NODES   0x01
#define FC_ALLOCED_ON_STACK   0x03
#define FC_AUTO_HANDLE   0x33
#define FC_BIND_CONTEXT   0x30
#define FC_BIND_GENERIC   0x31
#define FC_BIND_PRIMITIVE   0x32
#define FC_BLKHOLE   0xB6
#define FC_BOGUS_ARRAY   0x21
#define FC_BOGUS_STRUCT   0x1A
#define FC_BSTRING   0x27
#define FC_BYTE   0x01
#define FC_BYTE_COUNT_POINTER   0x2C
#define FC_C_BSTRING   0x23
#define FC_C_CSTRING   0x22
#define FC_C_SSTRING   0x24
#define FC_C_WSTRING   0x25
#define FC_CALLBACK   0x59
#define FC_CALLBACK_HANDLE   0x34
#define FC_CARRAY   0x1B
#define FC_CHAR   0x02
#define FC_CONSTANT_CONFORMANCE   0x40
#define FC_CONSTANT_IID   0x5A
#define FC_CPSTRUCT   0x18
#define FC_CSTRING   0x26
#define FC_CSTRUCT   0x17
#define FC_CVARRAY   0x1C
#define FC_CVSTRUCT   0x19
#define FC_DEREFERENCE   0x54
#define FC_DIV_2   0x55
#define FC_DONT_FREE   0x02
#define FC_DOUBLE   0x0C
#define FC_EMBEDDED_COMPLEX   0x4C
#define FC_ENCAPSULATED_UNION   0x2A
#define FC_END   0x5B
#define FC_END_OF_UNIVERSE   0xBA
#define FC_ENUM16   0x0D
#define FC_ENUM32   0x0E
#define FC_ERROR_STATUS_T   0x10
#define FC_FIXED_OFFSET   0x49
#define FC_FIXED_REPEAT   0x47
#define FC_FLOAT   0x0A
#define FC_FP   0x14
#define FC_HARD_STRUCT   0xB1
#define FC_HYPER   0x0B
#define FC_IGNORE   0x0F
#define FC_IN_OUT_PARAM   0x50
#define FC_IN_PARAM   0x4D
#define FC_IN_PARAM_BASETYPE   0x4E
#define FC_IN_PARAM_NO_FREE_INST   0x4F
#define FC_INT3264   0xB8
#define FC_IP   0x2F
#define FC_LGFARRAY   0x1E
#define FC_LGVARRAY   0x20
#define FC_LONG   0x08
#define FC_MULT_2   0x56
#define FC_NO_REPEAT   0x46
#define FC_NON_ENCAPSULATED_UNION   0x2B
#define FC_NORMAL_CONFORMANCE   0x00
#define FC_OP   0x13
#define FC_OUT_PARAM   0x51
#define FC_PAD   0x5C
#define FC_PIPE   0xB5
#define FC_POINTER   0x36
#define FC_POINTER_CONFORMANCE   0x10
#define FC_POINTER_DEREF   0x05
#define FC_PP   0x4B
#define FC_PSTRUCT   0x16
#define FC_RANGE   0xB7
#define FC_REPRESENT_AS   0x2E
#define FC_REPRESENT_AS_PTR   0xB3
#define FC_RETURN_PARAM   0x52
#define FC_RETURN_PARAM_BASETYPE   0x53
#define FC_RP   0x11
#define FC_SHORT   0x06
#define FC_SIMPLE_POINTER   0x04
#define FC_SMALL   0x03
#define FC_SMFARRAY   0x1D
#define FC_SMVARRAY   0x1F
#define FC_SPLIT_ADD_1   0x77
#define FC_SPLIT_CALLBACK   0x79
#define FC_SPLIT_DEREFERENCE   0x74
#define FC_SPLIT_DIV_2   0x75
#define FC_SPLIT_MULT_2   0x76
#define FC_SPLIT_SUB_1   0x78
#define FC_SSTRING   0x28
#define FC_STRING_SIZED   0x44
#define FC_STRUCT   0x15
#define FC_STRUCTPAD1   0x3D
#define FC_STRUCTPAD2   0x3E
#define FC_STRUCTPAD3   0x3F
#define FC_STRUCTPAD4   0x40
#define FC_STRUCTPAD5   0x41
#define FC_STRUCTPAD6   0x42
#define FC_STRUCTPAD7   0x43
#define FC_SUB_1   0x58
#define FC_TOP_LEVEL_CONFORMANCE   0x20
#define FC_TOP_LEVEL_MULTID_CONFORMANCE   0x80
#define FC_TRANSMIT_AS   0x2D
#define FC_TRANSMIT_AS_PTR   0xB2
#define FC_UINT3264   0xB9
#define FC_ULONG   0x09
#define FC_UNUSED1   0x35
#define FC_UNUSED2   0x3A
#define FC_UNUSED3   0x3B
#define FC_UNUSED4   0x3C
#define FC_UNUSED5   0x45
#define FC_UP   0x12
#define FC_USER_MARSHAL   0xB4
#define FC_USHORT   0x07
#define FC_USMALL   0x04
#define FC_VARIABLE_OFFSET   0x4A
#define FC_VARIABLE_REPEAT   0x48
#define FC_WCHAR   0x05
#define FC_WSTRING   0x29
#define FC_ZERO   0x00
#define HANDLE_PARAM_IS_IN   0x40
#define HANDLE_PARAM_IS_OUT   0x20
#define HANDLE_PARAM_IS_RETURN   0x21
#define HANDLE_PARAM_IS_VIA_PTR   0x80
#define NDR_CONTEXT_HANDLE_CANNOT_BE_NULL   0x01
#define NDR_CONTEXT_HANDLE_NO_SERIALIZE   0x04
#define NDR_CONTEXT_HANDLE_SERIALIZE   0x02
#define NDR_STRICT_CONTEXT_HANDLE   0x08
#define NdrFcLong (   s)
Value:
(byte)(s & 0xFF), (byte)((s & 0x0000FF00) >> 8), \
(byte)((s & 0x00FF0000) >> 16), (byte)(s >> 24)
#define NdrFcShort (   s)    (byte)(s & 0xFF), (byte)(s >> 8)
#define RPC_MGR_EPV   void
#define TARGET_IS_NT50_OR_LATER   1

Typedef Documentation

typedef void(* EXPR_EVAL) (struct _MIDL_STUB_MESSAGE *)
typedef void*(* GENERIC_BINDING_ROUTINE) (void *)
typedef void(* GENERIC_UNBIND_ROUTINE) (void *, unsigned char *)
typedef void* NDR_EXPR_DESC
typedef void(* NDR_NOTIFY_ROUTINE) (void)
typedef void(* NDR_RUNDOWN) (void *context)
typedef void(* NDR_TYPE_FREE_ROUTINE) (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat)
typedef void(* NDR_TYPE_MARSHALL_ROUTINE) (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, unsigned char FormatChar)
typedef void(* NDR_TYPE_SIZE_ROUTINE) (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat)
typedef void(* NDR_TYPE_UNMARSHALL_ROUTINE) (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, unsigned char FormatChar)
typedef const unsigned char* PFORMAT_STRING
typedef MIDL_STUB_DESC* PMIDL_STUB_DESC
typedef void(* RPC_DISPATCH_FUNCTION) (PRPC_MESSAGE Message)
typedef void(* USER_MARSHAL_FREEING_ROUTINE) (ULONG *, void *)
typedef unsigned char*(* USER_MARSHAL_MARSHALLING_ROUTINE) (ULONG *, unsigned char *, void *)
typedef ULONG(* USER_MARSHAL_SIZING_ROUTINE) (ULONG *, ULONG, void *)
typedef unsigned char*(* USER_MARSHAL_UNMARSHALLING_ROUTINE) (ULONG *, unsigned char *, void *)
typedef void(* XMIT_HELPER_ROUTINE) (PMIDL_STUB_MESSAGE)

Enumeration Type Documentation

enum NDR_PHASE
Enumerator
NDR_PHASE_SIZE 
NDR_PHASE_MARSHALL 
NDR_PHASE_UNMARSHALL 
NDR_PHASE_FREE 

Function Documentation

WINPR_API CLIENT_CALL_RETURN NdrClientCall2 ( PMIDL_STUB_DESC  pStubDescriptor,
PFORMAT_STRING  pFormat,
  ... 
)

Here is the call graph for this function: