/*++ Copyright (c) 1991 Microsoft Corporation Module Name: Pointer.c Abstract: This module contains Remote Admin Protocol (RAP) routines. These routines are shared between XactSrv and RpcXlate. Author: Shanku Niyogi (w-shanku) 15-Feb-1991 Environment: Portable to any flat, 32-bit environment. (Uses Win32 typedefs.) Requires ANSI C extensions: slash-slash comments, long external names. Revision History: 14-Apr-1991 JohnRo Reduce recompiles. 15-May-1991 JohnRo Added native vs. RAP handling. 10-Jul-1991 JohnRo RapExamineDescriptor() has yet another parameter. --*/ // These must be included first: #include // IN, LPDWORD, NULL, OPTIONAL, DWORD, etc. #include // NET_API_STATUS // These may be included in any order: #include // My prototype, LPDESC. DWORD RapLastPointerOffset ( IN LPDESC Descriptor, IN RAP_TRANSMISSION_MODE TransmissionMode, IN BOOL Native ) /*++ Routine Description: This routine determines the offset from the start of the structure to the last pointer in the structure. Arguments: Descriptor - the format of the structure. Transmission Mode - Indicates whether this array is part of a response, a request, or both. Native - TRUE iff the descriptor defines a native structure. (This flag is used to decide whether or not to align fields.) Return Value: DWORD - The offset from the start of the structure to the last pointer in the structure, or the value NO_POINTER_IN_STRUCTURE if there are no pointers in the structure. --*/ { DWORD lastPointerOffset; RapExamineDescriptor( Descriptor, NULL, NULL, &lastPointerOffset, NULL, NULL, NULL, // don't need to know structure alignment TransmissionMode, Native ); return lastPointerOffset; } // RapLastPointerOffset