Annotation of mstools/h/rpcbse.h, revision 1.1.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.