92 lines
2 KiB
C
92 lines
2 KiB
C
/*++
|
|
|
|
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 <windef.h> // IN, LPDWORD, NULL, OPTIONAL, DWORD, etc.
|
|
#include <lmcons.h> // NET_API_STATUS
|
|
|
|
// These may be included in any order:
|
|
#include <rap.h> // 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
|