windows-nt/Source/XPSP1/NT/ds/netapi/rap/pointer.c
2020-09-26 16:20:57 +08:00

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