Annotation of mstools/h/rpcbse.h, revision 1.1

1.1     ! root        1: /*********************************************************/
        !             2: /**               Microsoft LAN Manager                 **/
        !             3: /**       Copyright(c) Microsoft Corp., 1987-1990       **/
        !             4: /**                                                     **/
        !             5: /**        Prototypes for the RPC Runtime APIs.         **/
        !             6: /**                                                     **/
        !             7: /*********************************************************/
        !             8: 
        !             9: #ifndef __RPCBSE_H__
        !            10: #define __RPCBSE_H__
        !            11: 
        !            12: 
        !            13: #define IN
        !            14: #define OUT
        !            15: #define OPTIONAL
        !            16: 
        !            17: typedef RPC_HANDLE handle_t;
        !            18: typedef RPC_HANDLE PAPI * PRPC_HANDLE;
        !            19: typedef char small;
        !            20: typedef unsigned char byte;
        !            21: typedef unsigned char boolean;
        !            22: 
        !            23: typedef struct _RPC_VERSION {
        !            24:     unsigned short MajorVersion;
        !            25:     unsigned short MinorVersion;
        !            26: } RPC_VERSION;
        !            27: 
        !            28: #ifndef GUID_DEFINED
        !            29: #define GUID_DEFINED
        !            30: typedef struct _GUID {
        !            31:     unsigned long Data1;
        !            32:     unsigned short Data2;
        !            33:     unsigned short Data3;
        !            34:     unsigned char Data4[8];
        !            35: } GUID;
        !            36: #endif
        !            37: 
        !            38: typedef struct _RPC_SYNTAX_IDENTIFIER {
        !            39:     GUID SyntaxGUID;
        !            40:     RPC_VERSION SyntaxVersion;
        !            41: } RPC_SYNTAX_IDENTIFIER, PAPI * PRPC_SYNTAX_IDENTIFIER;
        !            42: 
        !            43: typedef struct _RPC_PROTOCOL {
        !            44:     unsigned char MajorProtocol;
        !            45:     unsigned char MinorProtocol;
        !            46: } RPC_PROTOCOL, PAPI * PRPC_PROTOCOL;
        !            47: 
        !            48: #define RPC_STACK_TYPE_V1 0
        !            49: 
        !            50: #define OSF_RPC_V20_VERS 5
        !            51: #define OSF_RPC_V20_VERS_MINOR 0
        !            52: 
        !            53: #define RPC_TRANSPORT_NAMEPIPE 1
        !            54: #define RPC_TRANSPORT_LPC 2
        !            55: #define RPC_TRANSPORT_TCP 3
        !            56: #define RPC_TRANSPORT_DNET 4
        !            57: #define RPC_TRANSPORT_NETBIOS 5
        !            58: 
        !            59: // RPC protocol level security should be assigned number between 1 and 255.
        !            60: 
        !            61: #define RPC_SECURITY_DS_HACK 250
        !            62: 
        !            63: // Transport level security should be assigned numbers greater than 255.
        !            64: 
        !            65: #define RPC_SECURITY_QOS 500
        !            66: 
        !            67: typedef struct _RPC_PROTOCOL_STACK {
        !            68:     unsigned long      StackType;
        !            69:     RPC_SYNTAX_IDENTIFIER InterfaceID;
        !            70:     unsigned long      TransferSyntaxCount;
        !            71:     PRPC_SYNTAX_IDENTIFIER TransferSyntaxes;
        !            72:     unsigned long      SecurityType;
        !            73:     unsigned long      SecurityInfoLength;
        !            74:     unsigned char  PAPI * SecurityInfo;
        !            75:     unsigned long      RPCProtocolCount;
        !            76:     PRPC_PROTOCOL      RPCProtocols;
        !            77:     unsigned long      TransportType;
        !            78:     unsigned long      TransportInfoLength;
        !            79:     unsigned char PAPI * TransportInfo;
        !            80: } RPC_PROTOCOL_STACK, PAPI * PRPC_PROTOCOL_STACK;
        !            81: 
        !            82: typedef struct {
        !            83:     unsigned char PAPI * UserName;
        !            84:     unsigned char PAPI * ComputerName;
        !            85:     unsigned short Privilege;
        !            86:     unsigned long AuthFlags;
        !            87: } RPC_CLIENT_INFORMATION1, PAPI * PRPC_CLIENT_INFORMATION1;
        !            88: 
        !            89: typedef struct {
        !            90:     unsigned int Count;
        !            91:     unsigned long TransportTypes[1];
        !            92: } RPC_CONFIG_TRANSPORT, PAPI * PRPC_CONFIG_TRANSPORT;
        !            93: 
        !            94: typedef struct{
        !            95:     unsigned long ConfigResourceWait;
        !            96: } RPC_CONFIG_RESOURCE_WAIT, PAPI * PRPC_CONFIG_RESOURCE_WAIT;
        !            97: 
        !            98: typedef struct {
        !            99:     RPC_HANDLE BindingHandle;
        !           100:     RPC_HANDLE PreviousCallHandle;
        !           101: } RPC_CLIENT_CALL_INFORMATION, PAPI * PRPC_CLIENT_CALL_INFORMATION;
        !           102: 
        !           103: typedef struct{
        !           104:     RPC_HANDLE PreviousCallHandle;
        !           105:     RPC_SYNTAX_IDENTIFIER InterfaceID;
        !           106:     RPC_SYNTAX_IDENTIFIER TransferSyntax;
        !           107:     unsigned long DataRepresentation;
        !           108: } RPC_SERVER_CALL_INFORMATION, PAPI * PRPC_SERVER_CALL_INFORMATION;
        !           109: 
        !           110: typedef struct{
        !           111:     RPC_SYNTAX_IDENTIFIER InterfaceID;
        !           112:     RPC_SYNTAX_IDENTIFIER TransferSyntax;
        !           113: } RPC_CLIENT_BINDING_INFORMATION, PAPI * PRPC_CLIENT_BINDING_INFORMATION;
        !           114: 
        !           115: typedef struct{
        !           116:     RPC_HANDLE ServerHandle;
        !           117:     RPC_HANDLE AddressHandle;
        !           118:     RPC_HANDLE InterfaceHandle;
        !           119: } RPC_SERVER_BINDING_INFORMATION, PAPI * PRPC_SERVER_BINDING_INFORMATION;
        !           120: 
        !           121: typedef struct {
        !           122:     RPC_HANDLE Handle;
        !           123:     unsigned long DataRepresentation;
        !           124:     void PAPI * Buffer;
        !           125:     unsigned int BufferLength;
        !           126:     unsigned int ProcNum;
        !           127:     PRPC_SYNTAX_IDENTIFIER TransferSyntax;
        !           128:     long reserved;
        !           129: } RPC_MESSAGE, PAPI * PRPC_MESSAGE;
        !           130: 
        !           131: typedef enum {
        !           132:     RpcStopWhenUnbind = 1,
        !           133:     RpcStopWhenCallsComplete,
        !           134:     RpcStopImmediate
        !           135: } RPC_STOP_FLAG;
        !           136: 
        !           137: typedef enum  {
        !           138:     RpcMinimizeResourceUsage,
        !           139:     RpcNormalResourceUsage,
        !           140:     RpcMaximizeSpeed
        !           141: } RPC_RESOURCE_USAGE;
        !           142: 
        !           143: typedef enum {
        !           144:     RpcScopeLocal = 0,
        !           145:     RpcScopeDomain = 1
        !           146: } RPC_SCOPE;
        !           147: 
        !           148: typedef enum {
        !           149:     RpcConfigTransport = 1,
        !           150:     RpcConfigResourceWait = 2
        !           151: } RPC_CONFIG;
        !           152: 
        !           153: typedef enum {
        !           154:     RpcResponseTypeReply = 0,
        !           155:     RpcResponseTypeRemoteFault = 1
        !           156: } RPC_RESPONSE_TYPES;
        !           157: 
        !           158: 
        !           159: typedef void (PAPI * RPC_DISPATCH_FUNCTION) (IN OUT PRPC_MESSAGE Message);
        !           160: 
        !           161: typedef struct {
        !           162:     unsigned int DispatchTableCount;
        !           163:     RPC_DISPATCH_FUNCTION PAPI * DispatchTable;
        !           164:     int Reserved;
        !           165: } RPC_DISPATCH_TABLE, PAPI * PRPC_DISPATCH_TABLE;
        !           166: 
        !           167: typedef enum _RPC_CLIENT_PRIORITY {
        !           168:     RpcPriorityReject = 0,
        !           169:     RpcPriorityNormal = 10,
        !           170:     RpcPriorityHigh = 20,
        !           171:     RpcPriorityCritical = 30
        !           172: } RPC_CLIENT_PRIORITY;
        !           173: 
        !           174: typedef
        !           175: int /* RPC_CLIENT_PRIORITY -- BUGBUG: Glock 1.2 replace int with this*/
        !           176: (PAPI * RPC_NEW_CLIENT_EVENT) (
        !           177:     IN RPC_HANDLE CallHandle
        !           178:     );
        !           179: 
        !           180: typedef enum _RPC_THREAD_EVENT_TYPE {
        !           181:     RpcCreateThreadRequest,
        !           182:     RpcDeleteThreadNotify,
        !           183:     RpcInitializeThread,
        !           184:     RpcFinalizeThread
        !           185: } RPC_THREAD_EVENT_TYPE;
        !           186: 
        !           187: typedef
        !           188: unsigned int
        !           189: (PAPI * RPC_THREAD_EVENT) (
        !           190:     IN RPC_THREAD_EVENT_TYPE Event
        !           191:     );
        !           192: 
        !           193: typedef
        !           194: void
        !           195: (PAPI * RPC_MANAGER_ERROR_EVENT) (
        !           196:     IN void PAPI * ErrorObject,
        !           197:     IN RPC_STATUS ErrorCode
        !           198:     );
        !           199: 
        !           200: typedef struct {
        !           201:     RPC_HANDLE CallHandle;
        !           202:     unsigned int ProcNum;
        !           203: } RPC_REPLY_FAILED_INFORMATION, PAPI * PRPC_REPLY_FAILED_INFORMATION;
        !           204: 
        !           205: typedef struct {
        !           206:     unsigned int Count;
        !           207:     RPC_NEW_CLIENT_EVENT NewClientEvent;
        !           208:     RPC_THREAD_EVENT ThreadEvent;
        !           209:     RPC_MANAGER_ERROR_EVENT ManagerErrorEvent;
        !           210: } RPC_EVENT_HANDLERS, PAPI * PRPC_EVENT_HANDLERS;
        !           211: 
        !           212: typedef
        !           213: void
        !           214: (PAPI * PRPC_RUNDOWN) (
        !           215:     void PAPI * AssociationContext
        !           216:     );
        !           217: 
        !           218: 
        !           219: /*** Server API's ***/
        !           220: 
        !           221: RPC_STATUS RPC_ENTRY
        !           222: RpcCreateServer (
        !           223:     IN PRPC_EVENT_HANDLERS EventHandlers OPTIONAL,
        !           224:     OUT PRPC_HANDLE ServerHandle
        !           225:     );
        !           226: 
        !           227: RPC_STATUS RPC_ENTRY
        !           228: RpcDeleteServer (
        !           229:     IN RPC_HANDLE ServerHandle,
        !           230:     IN RPC_STOP_FLAG StopFlag
        !           231:     );
        !           232: 
        !           233: #define RPC_ADDRESS_AVOID_DEADLOCK 1
        !           234: 
        !           235: RPC_STATUS RPC_ENTRY
        !           236: RpcAddAddress (
        !           237:     IN RPC_HANDLE ServerHandle,
        !           238:     IN PRPC_PROTOCOL_STACK RequestedAddress,
        !           239:     IN unsigned int AddressFlags,
        !           240:     OUT PRPC_HANDLE AddressHandle,
        !           241:     IN void PAPI * SecurityDescriptor,
        !           242:     IN RPC_RESOURCE_USAGE ResourceUsage,
        !           243:     IN unsigned long Timeout OPTIONAL
        !           244:     );
        !           245: 
        !           246: RPC_STATUS RPC_ENTRY
        !           247: RpcRemoveAddress (
        !           248:     IN RPC_HANDLE AddressHandle,
        !           249:     IN RPC_STOP_FLAG StopFlag
        !           250:     );
        !           251: 
        !           252: RPC_STATUS RPC_ENTRY
        !           253: RpcAddInterface (
        !           254:     IN RPC_HANDLE ServerHandle,
        !           255:     IN PRPC_PROTOCOL_STACK ProtocolStack,
        !           256:     OUT PRPC_HANDLE InterfaceHandle,
        !           257:     IN void PAPI * SecurityDescriptor,
        !           258:     IN PRPC_DISPATCH_TABLE DispatchTable
        !           259:     );
        !           260: 
        !           261: RPC_STATUS RPC_ENTRY
        !           262: RpcRemoveInterface (
        !           263:     IN RPC_HANDLE InterfaceHandle,
        !           264:     IN RPC_STOP_FLAG StopFlag
        !           265:     );
        !           266: 
        !           267: RPC_STATUS RPC_ENTRY
        !           268: RpcMonitorAssociation (
        !           269:     IN RPC_HANDLE Handle,
        !           270:     IN PRPC_RUNDOWN RundownRoutine,
        !           271:     IN void *pContext
        !           272:     );
        !           273: 
        !           274: RPC_STATUS RPC_ENTRY
        !           275: RpcStopMonitorAssociation (
        !           276:     IN RPC_HANDLE Handle
        !           277:     );
        !           278: 
        !           279: 
        !           280: RPC_STATUS RPC_ENTRY
        !           281: RpcExport (
        !           282:     IN RPC_HANDLE ExportHandle,
        !           283:     IN RPC_SCOPE Scope,
        !           284:     IN PRPC_PROTOCOL_STACK ProtocolStack
        !           285:     );
        !           286: 
        !           287: 
        !           288: RPC_STATUS RPC_ENTRY
        !           289: RpcWithdraw (
        !           290:     IN RPC_HANDLE WithdrawHandle,
        !           291:     IN PRPC_PROTOCOL_STACK ProtocolStack
        !           292:     );
        !           293: 
        !           294: RPC_STATUS RPC_ENTRY
        !           295: RpcQueryClient (
        !           296:     IN RPC_HANDLE Handle,
        !           297:     IN unsigned int ClientInformationLevel,
        !           298:     OUT void PAPI * ClientInformation,
        !           299:     IN OUT unsigned int PAPI * ClientInformationLength
        !           300:     );
        !           301: 
        !           302: RPC_HANDLE RPC_ENTRY
        !           303: RpcGetCurrentCallHandle(
        !           304:         OUT PRPC_SERVER_CALL_INFORMATION CallInformation OPTIONAL
        !           305:         );
        !           306: 
        !           307: RPC_STATUS RPC_ENTRY
        !           308: RpcGetAssociationContext (
        !           309:     OUT void PAPI * PAPI * AssociationContext
        !           310:     );
        !           311: 
        !           312: RPC_STATUS RPC_ENTRY
        !           313: RpcSetAssociationContext (
        !           314:     OUT void PAPI * AssociationContext
        !           315:     );
        !           316: 
        !           317: 
        !           318: /*** The following are client side API's ***/
        !           319: 
        !           320: RPC_STATUS RPC_ENTRY
        !           321: RpcImport (
        !           322:     IN unsigned char PAPI * DomainName,
        !           323:     IN RPC_SCOPE Scope,
        !           324:     IN PRPC_PROTOCOL_STACK ProtocolStack,
        !           325:     IN PRPC_DISPATCH_TABLE CallBackTable OPTIONAL,
        !           326:     OUT PRPC_HANDLE BindingHandle
        !           327:     );
        !           328: 
        !           329: RPC_STATUS RPC_ENTRY
        !           330: RpcBindToInterface (
        !           331:     IN PRPC_PROTOCOL_STACK InterfaceInstance,
        !           332:     IN PRPC_DISPATCH_TABLE CallBackTable OPTIONAL,
        !           333:     OUT PRPC_HANDLE BindingHandle
        !           334:     );
        !           335: 
        !           336: RPC_STATUS RPC_ENTRY
        !           337: RpcUnbind (
        !           338:     IN RPC_HANDLE BindingHandle
        !           339:     );
        !           340: 
        !           341: RPC_STATUS RPC_ENTRY
        !           342: RpcDuplicateBinding (
        !           343:     IN RPC_HANDLE Binding,
        !           344:     OUT PRPC_HANDLE NewBinding
        !           345:     );
        !           346: 
        !           347: 
        !           348: RPC_STATUS RPC_ENTRY
        !           349: RpcQueryCall (
        !           350:     IN RPC_HANDLE CallHandle,
        !           351:     OUT void PAPI * CallInformation,
        !           352:     IN OUT unsigned int PAPI * CallInformationLength
        !           353:     );
        !           354: 
        !           355: RPC_STATUS RPC_ENTRY
        !           356: RpcQueryBinding (
        !           357:     IN RPC_HANDLE Handle,
        !           358:     OUT void PAPI * BindingInformation,
        !           359:     IN OUT unsigned int PAPI * BindingInformationLength
        !           360:     );
        !           361: 
        !           362: RPC_STATUS RPC_ENTRY
        !           363: RpcQueryProtocolStack (
        !           364:     IN RPC_HANDLE Handle,
        !           365:     OUT PRPC_PROTOCOL_STACK ProtocolStack,
        !           366:     IN OUT unsigned int PAPI * ProtocolStackLength
        !           367:     );
        !           368: 
        !           369: RPC_STATUS RPC_ENTRY
        !           370: RpcQueryConfig (
        !           371:     IN  RPC_CONFIG ConfigType,
        !           372:     OUT void PAPI * ConfigInformation,
        !           373:     IN  OUT unsigned int PAPI * ConfigInformationLength
        !           374:     );
        !           375: 
        !           376: RPC_STATUS RPC_ENTRY
        !           377: RpcSetConfig (
        !           378:     IN  RPC_CONFIG ConfigType,
        !           379:     OUT void PAPI * ConfigInformation
        !           380:     );
        !           381: 
        !           382: RPC_STATUS RPC_ENTRY
        !           383: RpcGetBuffer (
        !           384:     IN OUT PRPC_MESSAGE Message
        !           385:     );
        !           386: 
        !           387: RPC_STATUS RPC_ENTRY
        !           388: RpcFreeBuffer (
        !           389:     IN OUT PRPC_MESSAGE Message
        !           390:     );
        !           391: 
        !           392: RPC_STATUS RPC_ENTRY
        !           393: RpcSendReceive (
        !           394:     IN OUT PRPC_MESSAGE Message
        !           395:     );
        !           396: 
        !           397: void RPC_ENTRY
        !           398: RpcRaiseException (
        !           399:     RPC_STATUS exception
        !           400:     );
        !           401: 
        !           402: #endif /* __RPCBSE_H__ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.