windows-nt/Source/XPSP1/NT/printscan/print/spooler/spllib/marshall.h
2020-09-26 16:20:57 +08:00

116 lines
1.9 KiB
C

/*++
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
);