home *** CD-ROM | disk | FTP | other *** search
- /*++
-
- Module Name: rpcdcep.h
-
- Abstract:
-
- This module contains the private RPC runtime APIs for use by the
- stubs and by support libraries. Applications must not call these
- routines.
-
- --*/
-
- /*
- * C/C++ Run Time Library - Version 6.0
- *
- * Copyright (c) 1991, 1993 by Borland International
- * All Rights Reserved.
- *
- */
-
- #ifndef __RPCDCEP_H__
- #define __RPCDCEP_H__
-
- // Set the packing level for RPC structures for Dos and Windows.
-
- #if defined(__RPC_DOS__) || defined(__RPC_WIN16__)
- #ifndef RC_INVOKED
- #pragma option -a.
- #endif
- #endif
-
- #ifdef __RPC_WIN32__
- #ifndef RC_INVOKED
- #pragma option -a-
- #endif /* RC_INVOKED */
- #endif /* __RPC_WIN32__ */
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- typedef struct _RPC_VERSION {
- unsigned short MajorVersion;
- unsigned short MinorVersion;
- } RPC_VERSION;
-
- typedef struct _RPC_SYNTAX_IDENTIFIER {
- GUID SyntaxGUID;
- RPC_VERSION SyntaxVersion;
- } RPC_SYNTAX_IDENTIFIER, __RPC_FAR * PRPC_SYNTAX_IDENTIFIER;
-
- typedef struct _RPC_MESSAGE
- {
- RPC_BINDING_HANDLE Handle;
- unsigned long DataRepresentation;
- void __RPC_FAR * Buffer;
- unsigned int BufferLength;
- unsigned int ProcNum;
- PRPC_SYNTAX_IDENTIFIER TransferSyntax;
- void __RPC_FAR * RpcInterfaceInformation;
- void __RPC_FAR * ReservedForRuntime;
- RPC_MGR_EPV __RPC_FAR * ManagerEpv;
- void __RPC_FAR * ImportContext;
- unsigned long RpcFlags;
- } RPC_MESSAGE, __RPC_FAR * PRPC_MESSAGE;
-
- typedef
- void
- (__RPC_STUB __RPC_FAR * RPC_DISPATCH_FUNCTION) (
- IN OUT PRPC_MESSAGE Message
- );
-
- typedef struct {
- unsigned int DispatchTableCount;
- RPC_DISPATCH_FUNCTION __RPC_FAR * DispatchTable;
- int Reserved;
- } RPC_DISPATCH_TABLE, __RPC_FAR * PRPC_DISPATCH_TABLE;
-
- typedef struct _RPC_PROTSEQ_ENDPOINT
- {
- unsigned char __RPC_FAR * RpcProtocolSequence;
- unsigned char __RPC_FAR * Endpoint;
- } RPC_PROTSEQ_ENDPOINT, __RPC_FAR * PRPC_PROTSEQ_ENDPOINT;
-
- /*
- Both of this types MUST start with the InterfaceId and TransferSyntax.
- Look at RpcIfInqId and I_RpcIfInqTransferSyntaxes to see why.
- */
-
- typedef struct _RPC_SERVER_INTERFACE
- {
- unsigned int Length;
- RPC_SYNTAX_IDENTIFIER InterfaceId;
- RPC_SYNTAX_IDENTIFIER TransferSyntax;
- PRPC_DISPATCH_TABLE DispatchTable;
- unsigned int RpcProtseqEndpointCount;
- PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
- void __RPC_FAR * MopInterfaceInformation;
- } RPC_SERVER_INTERFACE, __RPC_FAR * PRPC_SERVER_INTERFACE;
-
- typedef struct _RPC_CLIENT_INTERFACE
- {
- unsigned int Length;
- RPC_SYNTAX_IDENTIFIER InterfaceId;
- RPC_SYNTAX_IDENTIFIER TransferSyntax;
- PRPC_DISPATCH_TABLE DispatchTable;
- unsigned int RpcProtseqEndpointCount;
- PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
- void __RPC_FAR * MopInterfaceInformation;
- } RPC_CLIENT_INTERFACE, __RPC_FAR * PRPC_CLIENT_INTERFACE;
-
- RPC_STATUS RPC_ENTRY
- I_RpcGetBuffer (
- IN OUT RPC_MESSAGE __RPC_FAR * Message
- );
-
- RPC_STATUS RPC_ENTRY
- I_RpcSendReceive (
- IN OUT RPC_MESSAGE __RPC_FAR * Message
- );
-
- RPC_STATUS RPC_ENTRY
- I_RpcFreeBuffer (
- IN OUT RPC_MESSAGE __RPC_FAR * Message
- );
-
- typedef void * I_RPC_MUTEX;
-
- void RPC_ENTRY
- I_RpcRequestMutex (
- IN OUT I_RPC_MUTEX * Mutex
- );
-
- void RPC_ENTRY
- I_RpcClearMutex (
- IN I_RPC_MUTEX Mutex
- );
-
- void RPC_ENTRY
- I_RpcDeleteMutex (
- IN I_RPC_MUTEX Mutex
- );
-
- void __RPC_FAR * RPC_ENTRY
- I_RpcAllocate (
- IN unsigned int Size
- );
-
- void RPC_ENTRY
- I_RpcFree (
- IN void __RPC_FAR * Object
- );
-
- void RPC_ENTRY
- I_RpcPauseExecution (
- IN unsigned long Milliseconds
- );
-
- typedef
- void
- (__RPC_USER __RPC_FAR * PRPC_RUNDOWN) (
- void __RPC_FAR * AssociationContext
- );
-
- RPC_STATUS RPC_ENTRY
- I_RpcMonitorAssociation (
- IN RPC_BINDING_HANDLE Handle,
- IN PRPC_RUNDOWN RundownRoutine,
- IN void * Context
- );
-
- RPC_STATUS RPC_ENTRY
- I_RpcStopMonitorAssociation (
- IN RPC_BINDING_HANDLE Handle
- );
-
- RPC_BINDING_HANDLE RPC_ENTRY
- I_RpcGetCurrentCallHandle(
- void
- );
-
- RPC_STATUS RPC_ENTRY
- I_RpcGetAssociationContext (
- OUT void __RPC_FAR * __RPC_FAR * AssociationContext
- );
-
- RPC_STATUS RPC_ENTRY
- I_RpcSetAssociationContext (
- IN void __RPC_FAR * AssociationContext
- );
-
- #ifdef RPC_UNICODE_SUPPORTED
-
- RPC_STATUS RPC_ENTRY
- I_RpcNsBindingSetEntryName (
- IN RPC_BINDING_HANDLE Binding,
- IN unsigned long EntryNameSyntax,
- IN unsigned short __RPC_FAR * EntryName
- );
-
- #else /* RPC_UNICODE_SUPPORTED */
-
- RPC_STATUS RPC_ENTRY
- I_RpcNsBindingSetEntryName (
- IN RPC_BINDING_HANDLE Binding,
- IN unsigned long EntryNameSyntax,
- IN unsigned char __RPC_FAR * EntryName
- );
-
- #endif /* RPC_UNICODE_SUPPORTED */
-
- #ifdef RPC_UNICODE_SUPPORTED
-
- RPC_STATUS RPC_ENTRY
- I_RpcBindingInqDynamicEndpoint (
- IN RPC_BINDING_HANDLE Binding,
- OUT unsigned short __RPC_FAR * __RPC_FAR * DynamicEndpoint
- );
-
- #else /* RPC_UNICODE_SUPPORTED */
-
- RPC_STATUS RPC_ENTRY
- I_RpcBindingInqDynamicEndpoint (
- IN RPC_BINDING_HANDLE Binding,
- OUT unsigned char __RPC_FAR * __RPC_FAR * DynamicEndpoint
- );
-
- #endif /* RPC_UNICODE_SUPPORTED */
-
- typedef struct _RPC_TRANSFER_SYNTAX
- {
- UUID Uuid;
- unsigned short VersMajor;
- unsigned short VersMinor;
- } RPC_TRANSFER_SYNTAX;
-
- RPC_STATUS RPC_ENTRY
- I_RpcIfInqTransferSyntaxes (
- IN RPC_IF_HANDLE RpcIfHandle,
- OUT RPC_TRANSFER_SYNTAX __RPC_FAR * TransferSyntaxes,
- IN unsigned int TransferSyntaxSize,
- OUT unsigned int __RPC_FAR * TransferSyntaxCount
- );
-
- RPC_STATUS RPC_ENTRY
- I_UuidCreate (
- OUT UUID __RPC_FAR * Uuid
- );
-
- RPC_STATUS RPC_ENTRY
- I_RpcBindingCopy (
- IN RPC_BINDING_HANDLE SourceBinding,
- OUT RPC_BINDING_HANDLE __RPC_FAR * DestinationBinding
- );
-
- RPC_STATUS RPC_ENTRY
- I_RpcBindingIsClientLocal (
- IN RPC_BINDING_HANDLE BindingHandle OPTIONAL,
- OUT unsigned int __RPC_FAR * ClientLocalFlag
- );
-
- void RPC_ENTRY
- I_RpcSsDontSerializeContext (
- void
- );
-
- /* Functions to do performace timing */
-
- extern unsigned long TraceCallTime; /* Time to call the trace system */
- extern unsigned long ChargeCallTime; /* Time to call the Charge API */
-
- typedef enum {
-
- TIME_RUNTIME = 0,
- TIME_STUB,
- TIME_TRANSPORT,
- TIME_USER,
- TIME_MAX,
- TIME_LOST
-
- } TIME_SLOT;
-
- void RPC_ENTRY
- I_RpcTimeReset(
- void
- );
-
- void RPC_ENTRY
- I_RpcTimeCharge(
- IN TIME_SLOT Account
- );
-
- unsigned long * RPC_ENTRY
- I_RpcTimeGet(
- char __RPC_FAR * ApiName
- );
-
- #ifdef __cplusplus
- }
- #endif
-
- // Reset the packing level for Dos and Windows.
-
- #if defined(__RPC_DOS__) || defined(__RPC_WIN16__)
- #ifndef RC_INVOKED
- #pragma option -a.
- #endif
- #endif
-
- #ifdef __RPC_WIN32__
- #ifndef RC_INVOKED
- #pragma option -a.
- #endif /* RC_INVOKED */
- #endif /* __RPC_WIN32__ */
-
- #endif /* __RPCDCEP_H__ */