|
|
/*++
Copyright (c) 1998 Microsoft Corporation All rights reserved.
Module Name:
marshall.hxx
Abstract:
Declarations for marshalling spooler structures sent via RPC/LPC
Author:
Ramanathan Venkatapathy (RamanV) 4/30/98
Revision History:
--*/
//
// 32-64 bit marshalling constants
//
#include "mType.h"
typedef enum _EDataSize { kPointerSize = sizeof (ULONG_PTR),
} EDataSize;
typedef enum _EPtrSize { kSpl32Ptr = 4, kSpl64Ptr = 8,
} EPtrSize ;
EXTERN_C BOOL MarshallDownStructure( IN OUT PBYTE pStructure, IN FieldInfo *pFieldInfo, IN SIZE_T StructureSize, IN CALL_ROUTE Route );
EXTERN_C BOOL MarshallUpStructure( IN OUT PBYTE pStructure, IN FieldInfo *pFieldInfo, IN SIZE_T StructureSize, IN CALL_ROUTE Route );
EXTERN_C BOOL MarshallUpStructuresArray( IN OUT PBYTE pBufferArray, IN DWORD cReturned, IN FieldInfo *pFieldInfo, IN SIZE_T StructureSize, IN CALL_ROUTE Route );
EXTERN_C BOOL MarshallDownStructuresArray( IN OUT PBYTE pBufferArray, IN DWORD cReturned, IN FieldInfo *pFieldInfo, IN SIZE_T StructureSize, IN CALL_ROUTE Route );
EXTERN_C DWORD UpdateBufferSize( IN FieldInfo *pFieldInfo, IN SIZE_T cbStruct, IN OUT LPDWORD pcbNeeded, IN DWORD cbBuf, IN DWORD dwError, IN LPDWORD pcReturned );
EXTERN_C BOOL GetShrinkedSize( IN FieldInfo *pFieldInfo, OUT SIZE_T *pShrinkedSize );
EXTERN_C VOID AdjustPointers( IN PBYTE pStructure, IN FieldInfo *pFieldInfo, IN ULONG_PTR cbAdjustment );
EXTERN_C VOID AdjustPointersInStructuresArray( IN PBYTE pBufferArray, IN DWORD cReturned, IN FieldInfo *pFieldInfo, IN SIZE_T StructureSize, IN ULONG_PTR cbAdjustment );
|