home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / rpcdcep.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  15.5 KB  |  733 lines

  1. /*++
  2.  
  3. Copyright (c) 1991-1999 Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     rpcdcep.h
  8.  
  9. Abstract:
  10.  
  11.     This module contains the private RPC runtime APIs for use by the
  12.     stubs and by support libraries.  Applications must not call these
  13.     routines.
  14.  
  15. --*/
  16.  
  17. #ifndef __RPCDCEP_H__
  18. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  19. #define __RPCDCEP_H__
  20.  
  21. #if _MSC_VER > 1000
  22. #pragma once
  23. #endif
  24.  
  25. // Set the packing level for RPC structures for Dos and Windows.
  26.  
  27. #if defined(__RPC_DOS__) || defined(__RPC_WIN16__)
  28. #pragma pack(2)
  29. #endif
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif
  34.  
  35. typedef struct _RPC_VERSION {
  36.     unsigned short MajorVersion;
  37.     unsigned short MinorVersion;
  38. } RPC_VERSION;
  39.  
  40. typedef struct _RPC_SYNTAX_IDENTIFIER {
  41.     GUID SyntaxGUID;
  42.     RPC_VERSION SyntaxVersion;
  43. } RPC_SYNTAX_IDENTIFIER, __RPC_FAR * PRPC_SYNTAX_IDENTIFIER;
  44.  
  45. typedef struct _RPC_MESSAGE
  46. {
  47.     RPC_BINDING_HANDLE Handle;
  48.     unsigned long DataRepresentation;
  49.     void __RPC_FAR * Buffer;
  50.     unsigned int BufferLength;
  51.     unsigned int ProcNum;
  52.     PRPC_SYNTAX_IDENTIFIER TransferSyntax;
  53.     void __RPC_FAR * RpcInterfaceInformation;
  54.     void __RPC_FAR * ReservedForRuntime;
  55.     RPC_MGR_EPV __RPC_FAR * ManagerEpv;
  56.     void __RPC_FAR * ImportContext;
  57.     unsigned long RpcFlags;
  58. } RPC_MESSAGE, __RPC_FAR * PRPC_MESSAGE;
  59.  
  60.  
  61. typedef RPC_STATUS
  62. RPC_ENTRY RPC_FORWARD_FUNCTION(
  63.                        IN UUID             __RPC_FAR * InterfaceId,
  64.                        IN RPC_VERSION      __RPC_FAR * InterfaceVersion,
  65.                        IN UUID             __RPC_FAR * ObjectId,
  66.                        IN unsigned char         __RPC_FAR * Rpcpro,
  67.                        IN void __RPC_FAR * __RPC_FAR * ppDestEndpoint);
  68.  
  69. enum RPC_ADDRESS_CHANGE_TYPE
  70. {
  71.     PROTOCOL_NOT_LOADED = 1,
  72.     PROTOCOL_LOADED,
  73.     PROTOCOL_ADDRESS_CHANGE
  74. };
  75.  
  76. typedef void
  77. RPC_ENTRY RPC_ADDRESS_CHANGE_FN(
  78.                         IN void * arg
  79.                         );
  80.  
  81. /*
  82. *  New context handle flavors.
  83. */
  84.  
  85. #define RPC_CONTEXT_HANDLE_DEFAULT_GUARD    ((void *)0xFFFFF00D)
  86.  
  87. #define RPC_CONTEXT_HANDLE_DEFAULT_FLAGS    0x00000000UL
  88. #define RPC_CONTEXT_HANDLE_FLAGS            0x30000000UL
  89. #define RPC_CONTEXT_HANDLE_SERIALIZE        0x10000000UL
  90. #define RPC_CONTEXT_HANDLE_DONT_SERIALIZE   0x20000000UL
  91.  
  92. /*
  93.  * Types of function calls for datagram rpc
  94.  */
  95.  
  96. #define RPC_NCA_FLAGS_DEFAULT       0x00000000  /* 0b000...000 */
  97. #define RPC_NCA_FLAGS_IDEMPOTENT    0x00000001  /* 0b000...001 */
  98. #define RPC_NCA_FLAGS_BROADCAST     0x00000002  /* 0b000...010 */
  99. #define RPC_NCA_FLAGS_MAYBE         0x00000004  /* 0b000...100 */
  100.  
  101. #define RPC_BUFFER_COMPLETE         0x00001000 /* used by pipes */
  102. #define RPC_BUFFER_PARTIAL          0x00002000 /* used by pipes */
  103. #define RPC_BUFFER_EXTRA            0x00004000 /* used by pipes */
  104. #define RPC_BUFFER_ASYNC            0x00008000 /* used by async rpc */
  105. #define RPC_BUFFER_NONOTIFY         0x00010000 /* used by async pipes */
  106.  
  107. #define RPCFLG_MESSAGE              0x01000000UL
  108. #define RPCFLG_AUTO_COMPLETE        0x08000000UL
  109. #define RPCFLG_LOCAL_CALL           0x10000000UL
  110. #define RPCFLG_INPUT_SYNCHRONOUS    0x20000000UL
  111. #define RPCFLG_ASYNCHRONOUS         0x40000000UL
  112. #define RPCFLG_NON_NDR              0x80000000UL
  113.  
  114. #if defined(__RPC_WIN32__) || defined(__RPC_MAC__) || defined(__RPC_WIN64__)
  115. #define RPC_FLAGS_VALID_BIT 0x00008000
  116. #elif defined(__RPC_DOS__) || defined(__RPC_WIN16__)
  117. #define RPC_FLAGS_VALID_BIT 0x8000
  118. #endif
  119.  
  120. typedef
  121. void
  122. (__RPC_STUB __RPC_FAR * RPC_DISPATCH_FUNCTION) (
  123.     IN OUT PRPC_MESSAGE Message
  124.     );
  125.  
  126. typedef struct {
  127.     unsigned int DispatchTableCount;
  128.     RPC_DISPATCH_FUNCTION __RPC_FAR * DispatchTable;
  129.     LONG_PTR                          Reserved;
  130. } RPC_DISPATCH_TABLE, __RPC_FAR * PRPC_DISPATCH_TABLE;
  131.  
  132. typedef struct _RPC_PROTSEQ_ENDPOINT
  133. {
  134.     unsigned char __RPC_FAR * RpcProtocolSequence;
  135.     unsigned char __RPC_FAR * Endpoint;
  136. } RPC_PROTSEQ_ENDPOINT, __RPC_FAR * PRPC_PROTSEQ_ENDPOINT;
  137.  
  138. /*
  139. Both of these types MUST start with the InterfaceId and TransferSyntax.
  140. Look at RpcIfInqId and I_RpcIfInqTransferSyntaxes to see why.
  141. */
  142. #define NT351_INTERFACE_SIZE 0x40
  143. #define RPC_INTERFACE_HAS_PIPES           0x0001
  144.  
  145. typedef struct _RPC_SERVER_INTERFACE
  146. {
  147.     unsigned int Length;
  148.     RPC_SYNTAX_IDENTIFIER InterfaceId;
  149.     RPC_SYNTAX_IDENTIFIER TransferSyntax;
  150.     PRPC_DISPATCH_TABLE DispatchTable;
  151.     unsigned int RpcProtseqEndpointCount;
  152.     PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
  153.     RPC_MGR_EPV __RPC_FAR *DefaultManagerEpv;
  154.     void const __RPC_FAR *InterpreterInfo;
  155.     unsigned int Flags ;
  156. } RPC_SERVER_INTERFACE, __RPC_FAR * PRPC_SERVER_INTERFACE;
  157.  
  158. typedef struct _RPC_CLIENT_INTERFACE
  159. {
  160.     unsigned int Length;
  161.     RPC_SYNTAX_IDENTIFIER   InterfaceId;
  162.     RPC_SYNTAX_IDENTIFIER   TransferSyntax;
  163.     PRPC_DISPATCH_TABLE     DispatchTable;
  164.     unsigned int            RpcProtseqEndpointCount;
  165.     PRPC_PROTSEQ_ENDPOINT   RpcProtseqEndpoint;
  166.     ULONG_PTR               Reserved;
  167.     void const __RPC_FAR *  InterpreterInfo;
  168.     unsigned int Flags ;
  169. } RPC_CLIENT_INTERFACE, __RPC_FAR * PRPC_CLIENT_INTERFACE;
  170.  
  171. RPCRTAPI
  172. RPC_STATUS
  173. RPC_ENTRY
  174. I_RpcGetBuffer (
  175.     IN OUT RPC_MESSAGE __RPC_FAR * Message
  176.     );
  177.  
  178. RPCRTAPI
  179. RPC_STATUS
  180. RPC_ENTRY
  181. I_RpcGetBufferWithObject (
  182.     IN OUT RPC_MESSAGE __RPC_FAR * Message,
  183.     IN UUID * ObjectUuid
  184.     );
  185.  
  186. RPCRTAPI
  187. RPC_STATUS
  188. RPC_ENTRY
  189. I_RpcSendReceive (
  190.     IN OUT RPC_MESSAGE __RPC_FAR * Message
  191.     );
  192.  
  193. RPCRTAPI
  194. RPC_STATUS
  195. RPC_ENTRY
  196. I_RpcFreeBuffer (
  197.     IN OUT RPC_MESSAGE __RPC_FAR * Message
  198.     );
  199.  
  200. RPCRTAPI
  201. RPC_STATUS
  202. RPC_ENTRY
  203. I_RpcSend (
  204.     IN OUT PRPC_MESSAGE Message
  205.     ) ;
  206.  
  207. RPCRTAPI
  208. RPC_STATUS
  209. RPC_ENTRY
  210. I_RpcReceive (
  211.     IN OUT PRPC_MESSAGE Message,
  212.     IN unsigned int Size
  213.     ) ;
  214.  
  215. RPCRTAPI
  216. RPC_STATUS
  217. RPC_ENTRY
  218. I_RpcFreePipeBuffer (
  219.     IN OUT RPC_MESSAGE __RPC_FAR * Message
  220.     ) ;
  221.  
  222. RPCRTAPI
  223. RPC_STATUS
  224. RPC_ENTRY
  225. I_RpcReallocPipeBuffer (
  226.     IN PRPC_MESSAGE Message,
  227.     IN unsigned int NewSize
  228.     ) ;
  229.  
  230. typedef void * I_RPC_MUTEX;
  231.  
  232. RPCRTAPI
  233. void
  234. RPC_ENTRY
  235. I_RpcRequestMutex (
  236.     IN OUT I_RPC_MUTEX * Mutex
  237.     );
  238.  
  239. RPCRTAPI
  240. void
  241. RPC_ENTRY
  242. I_RpcClearMutex (
  243.     IN I_RPC_MUTEX Mutex
  244.     );
  245.  
  246. RPCRTAPI
  247. void
  248. RPC_ENTRY
  249. I_RpcDeleteMutex (
  250.     IN I_RPC_MUTEX Mutex
  251.     );
  252.  
  253. RPCRTAPI
  254. void __RPC_FAR *
  255. RPC_ENTRY
  256. I_RpcAllocate (
  257.     IN unsigned int Size
  258.     );
  259.  
  260. RPCRTAPI
  261. void
  262. RPC_ENTRY
  263. I_RpcFree (
  264.     IN void __RPC_FAR * Object
  265.     );
  266.  
  267. RPCRTAPI
  268. void
  269. RPC_ENTRY
  270. I_RpcPauseExecution (
  271.     IN unsigned long Milliseconds
  272.     );
  273.  
  274. RPCRTAPI
  275. RPC_STATUS
  276. RPC_ENTRY
  277. I_RpcGetExtendedError (
  278.     );
  279.  
  280. typedef
  281. void
  282. (__RPC_USER __RPC_FAR * PRPC_RUNDOWN) (
  283.     void __RPC_FAR * AssociationContext
  284.     );
  285.  
  286. RPCRTAPI
  287. RPC_STATUS
  288. RPC_ENTRY
  289. I_RpcMonitorAssociation (
  290.     IN RPC_BINDING_HANDLE Handle,
  291.     IN PRPC_RUNDOWN RundownRoutine,
  292.     IN void * Context
  293.     );
  294.  
  295. RPCRTAPI
  296. RPC_STATUS
  297. RPC_ENTRY
  298. I_RpcStopMonitorAssociation (
  299.     IN RPC_BINDING_HANDLE Handle
  300.     );
  301.  
  302. RPCRTAPI
  303. RPC_BINDING_HANDLE
  304. RPC_ENTRY
  305. I_RpcGetCurrentCallHandle(
  306.     void
  307.     );
  308.  
  309. RPCRTAPI
  310. RPC_STATUS
  311. RPC_ENTRY
  312. I_RpcGetAssociationContext (
  313.     IN RPC_BINDING_HANDLE BindingHandle,
  314.     OUT void __RPC_FAR * __RPC_FAR * AssociationContext
  315.     );
  316.  
  317. RPCRTAPI
  318. void *
  319. RPC_ENTRY
  320. I_RpcGetServerContextList (
  321.     IN RPC_BINDING_HANDLE BindingHandle
  322.     );
  323.  
  324. RPCRTAPI
  325. void
  326. RPC_ENTRY
  327. I_RpcSetServerContextList (
  328.     IN RPC_BINDING_HANDLE BindingHandle,
  329.     OUT void * ServerContextList
  330.     );
  331.  
  332. RPCRTAPI
  333. RPC_STATUS
  334. RPC_ENTRY
  335. I_RpcNsInterfaceExported (
  336.     IN unsigned long EntryNameSyntax,
  337.     IN unsigned short *EntryName,
  338.     IN RPC_SERVER_INTERFACE * RpcInterfaceInformation
  339.     );
  340.  
  341. RPCRTAPI
  342. RPC_STATUS
  343. RPC_ENTRY
  344. I_RpcNsInterfaceUnexported (
  345.     IN unsigned long EntryNameSyntax,
  346.     IN unsigned short *EntryName,
  347.     IN RPC_SERVER_INTERFACE * RpcInterfaceInformation
  348.     );
  349.  
  350. RPCRTAPI
  351. RPC_STATUS
  352. RPC_ENTRY
  353. I_RpcBindingToStaticStringBindingW (
  354.     IN RPC_BINDING_HANDLE Binding,
  355.     OUT unsigned short **StringBinding
  356.     );
  357.  
  358. RPCRTAPI
  359. RPC_STATUS
  360. RPC_ENTRY
  361. I_RpcBindingInqSecurityContext (
  362.     IN RPC_BINDING_HANDLE Binding,
  363.     OUT void **SecurityContextHandle
  364.     );
  365.  
  366. #ifdef RPC_UNICODE_SUPPORTED
  367.  
  368. RPCRTAPI
  369. RPC_STATUS
  370. RPC_ENTRY
  371. I_RpcNsBindingSetEntryNameW (
  372.     IN RPC_BINDING_HANDLE Binding,
  373.     IN unsigned long EntryNameSyntax,
  374.     IN unsigned short __RPC_FAR * EntryName
  375.     );
  376.  
  377. RPCRTAPI
  378. RPC_STATUS
  379. RPC_ENTRY
  380. I_RpcNsBindingSetEntryNameA (
  381.     IN RPC_BINDING_HANDLE Binding,
  382.     IN unsigned long EntryNameSyntax,
  383.     IN unsigned char __RPC_FAR * EntryName
  384.     );
  385.  
  386. RPCRTAPI
  387. RPC_STATUS
  388. RPC_ENTRY
  389. I_RpcServerUseProtseqEp2A (
  390.     IN unsigned char __RPC_FAR * NetworkAddress,
  391.     IN unsigned char __RPC_FAR * Protseq,
  392.     IN unsigned int MaxCalls,
  393.     IN unsigned char __RPC_FAR * Endpoint,
  394.     IN void __RPC_FAR * SecurityDescriptor,
  395.     IN void *Policy
  396.     );
  397.  
  398. RPCRTAPI
  399. RPC_STATUS
  400. RPC_ENTRY
  401. I_RpcServerUseProtseqEp2W (
  402.     IN unsigned short __RPC_FAR * NetworkAddress,
  403.     IN unsigned short __RPC_FAR * Protseq,
  404.     IN unsigned int MaxCalls,
  405.     IN unsigned short __RPC_FAR * Endpoint,
  406.     IN void __RPC_FAR * SecurityDescriptor,
  407.     IN void * Policy
  408.     );
  409.  
  410. RPCRTAPI
  411. RPC_STATUS
  412. RPC_ENTRY
  413. I_RpcServerUseProtseq2W (
  414.     IN unsigned short __RPC_FAR * NetworkAddress,
  415.     IN unsigned short __RPC_FAR * Protseq,
  416.     IN unsigned int MaxCalls,
  417.     IN void __RPC_FAR * SecurityDescriptor,
  418.     IN void * Policy
  419.     );
  420.  
  421. RPCRTAPI
  422. RPC_STATUS
  423. RPC_ENTRY
  424. I_RpcServerUseProtseq2A (
  425.     IN unsigned char __RPC_FAR * NetworkAddress,
  426.     IN unsigned char __RPC_FAR * Protseq,
  427.     IN unsigned int MaxCalls,
  428.     IN void __RPC_FAR * SecurityDescriptor,
  429.     IN void * Policy
  430.     );
  431.  
  432.  
  433. #ifdef UNICODE
  434. #define I_RpcNsBindingSetEntryName I_RpcNsBindingSetEntryNameW
  435. #define I_RpcServerUseProtseqEp2 I_RpcServerUseProtseqEp2W
  436. #define I_RpcServerUseProtseq2 I_RpcServerUseProtseq2W
  437. #else
  438. #define I_RpcNsBindingSetEntryName I_RpcNsBindingSetEntryNameA
  439. #define I_RpcServerUseProtseqEp2 I_RpcServerUseProtseqEp2A
  440. #define I_RpcServerUseProtseq2 I_RpcServerUseProtseq2A
  441. #endif
  442.  
  443. #else
  444.  
  445. RPCRTAPI
  446. RPC_STATUS
  447. RPC_ENTRY
  448. I_RpcNsBindingSetEntryName (
  449.     IN RPC_BINDING_HANDLE Binding,
  450.     IN unsigned long EntryNameSyntax,
  451.     IN unsigned char __RPC_FAR * EntryName
  452.     );
  453.  
  454. RPCRTAPI
  455. RPC_STATUS
  456. RPC_ENTRY
  457. I_RpcServerUseProtseq2 (
  458.     IN unsigned char __RPC_FAR * NetworkAddress,
  459.     IN unsigned char __RPC_FAR * Protseq,
  460.     IN unsigned int MaxCalls,
  461.     IN void __RPC_FAR * SecurityDescriptor,
  462.     IN void * Policy
  463.     );
  464.  
  465. RPCRTAPI
  466. RPC_STATUS
  467. RPC_ENTRY
  468. I_RpcServerUseProtseqEp2 (
  469.     IN unsigned char __RPC_FAR * NetworkAddress,
  470.     IN unsigned char __RPC_FAR * Protseq,
  471.     IN unsigned int MaxCalls,
  472.     IN unsigned char __RPC_FAR * Endpoint,
  473.     IN void __RPC_FAR * SecurityDescriptor,
  474.     IN void * Policy
  475.     );
  476. #endif
  477.  
  478. #ifdef RPC_UNICODE_SUPPORTED
  479.  
  480. RPCRTAPI
  481. RPC_STATUS
  482. RPC_ENTRY
  483. I_RpcBindingInqDynamicEndpointW (
  484.     IN RPC_BINDING_HANDLE Binding,
  485.     OUT unsigned short __RPC_FAR * __RPC_FAR * DynamicEndpoint
  486.     );
  487.  
  488. RPCRTAPI
  489. RPC_STATUS
  490. RPC_ENTRY
  491. I_RpcBindingInqDynamicEndpointA (
  492.     IN RPC_BINDING_HANDLE Binding,
  493.     OUT unsigned char __RPC_FAR * __RPC_FAR * DynamicEndpoint
  494.     );
  495.  
  496. #ifdef UNICODE
  497. #define I_RpcBindingInqDynamicEndpoint I_RpcBindingInqDynamicEndpointW
  498. #else
  499. #define I_RpcBindingInqDynamicEndpoint I_RpcBindingInqDynamicEndpointA
  500. #endif
  501.  
  502. #else
  503.  
  504. RPCRTAPI
  505. RPC_STATUS
  506. RPC_ENTRY
  507. I_RpcBindingInqDynamicEndpoint (
  508.     IN RPC_BINDING_HANDLE Binding,
  509.     OUT unsigned char __RPC_FAR * __RPC_FAR * DynamicEndpoint
  510.     );
  511.  
  512. #endif
  513.  
  514. #define TRANSPORT_TYPE_CN        0x01
  515. #define TRANSPORT_TYPE_DG        0x02
  516. #define TRANSPORT_TYPE_LPC       0x04
  517. #define TRANSPORT_TYPE_WMSG      0x08
  518.  
  519. RPCRTAPI
  520. RPC_STATUS
  521. RPC_ENTRY
  522. I_RpcBindingInqTransportType (
  523.     IN RPC_BINDING_HANDLE Binding,
  524.     OUT unsigned int __RPC_FAR * Type
  525.     );
  526.  
  527. typedef struct _RPC_TRANSFER_SYNTAX
  528. {
  529.     UUID Uuid;
  530.     unsigned short VersMajor;
  531.     unsigned short VersMinor;
  532. } RPC_TRANSFER_SYNTAX;
  533.  
  534. RPCRTAPI
  535. RPC_STATUS
  536. RPC_ENTRY
  537. I_RpcIfInqTransferSyntaxes (
  538.     IN RPC_IF_HANDLE RpcIfHandle,
  539.     OUT RPC_TRANSFER_SYNTAX __RPC_FAR * TransferSyntaxes,
  540.     IN unsigned int TransferSyntaxSize,
  541.     OUT unsigned int __RPC_FAR * TransferSyntaxCount
  542.     );
  543.  
  544. RPCRTAPI
  545. RPC_STATUS
  546. RPC_ENTRY
  547. I_UuidCreate (
  548.     OUT UUID __RPC_FAR * Uuid
  549.     );
  550.  
  551. RPCRTAPI
  552. RPC_STATUS
  553. RPC_ENTRY
  554. I_RpcBindingCopy (
  555.     IN RPC_BINDING_HANDLE SourceBinding,
  556.     OUT RPC_BINDING_HANDLE __RPC_FAR * DestinationBinding
  557.     );
  558.  
  559. RPCRTAPI
  560. RPC_STATUS
  561. RPC_ENTRY
  562. I_RpcBindingIsClientLocal (
  563.     IN RPC_BINDING_HANDLE BindingHandle OPTIONAL,
  564.     OUT unsigned int __RPC_FAR * ClientLocalFlag
  565.     );
  566.  
  567. RPCRTAPI
  568. RPC_STATUS
  569. RPC_ENTRY
  570. I_RpcBindingInqConnId (
  571.     IN RPC_BINDING_HANDLE Binding,
  572.     OUT void **ConnId,
  573.     OUT int *pfFirstCall
  574.     );
  575.  
  576. RPCRTAPI
  577. void
  578. RPC_ENTRY
  579. I_RpcSsDontSerializeContext (
  580.     void
  581.     );
  582.  
  583. RPCRTAPI
  584. RPC_STATUS
  585. RPC_ENTRY
  586. I_RpcLaunchDatagramReceiveThread(
  587.     void __RPC_FAR * pAddress
  588.     );
  589.  
  590. RPCRTAPI
  591. RPC_STATUS
  592. RPC_ENTRY
  593. I_RpcServerRegisterForwardFunction (
  594.     IN RPC_FORWARD_FUNCTION  * pForwardFunction
  595.     );
  596.  
  597. RPC_ADDRESS_CHANGE_FN * RPC_ENTRY
  598. I_RpcServerInqAddressChangeFn();
  599.  
  600. RPC_STATUS RPC_ENTRY
  601. I_RpcServerSetAddressChangeFn(
  602.     IN RPC_ADDRESS_CHANGE_FN * pAddressChangeFn
  603.     );
  604.  
  605. RPCRTAPI
  606. RPC_STATUS
  607. RPC_ENTRY
  608. I_RpcConnectionInqSockBuffSize(
  609.   OUT unsigned long __RPC_FAR * RecvBuffSize,
  610.   OUT unsigned long __RPC_FAR * SendBuffSize
  611.   );
  612.  
  613. RPCRTAPI
  614. RPC_STATUS
  615. RPC_ENTRY
  616. I_RpcConnectionSetSockBuffSize(
  617.    IN unsigned long RecvBuffSize,
  618.    IN unsigned long SendBuffSize
  619.    );
  620.  
  621. typedef
  622. void
  623. (*RPCLT_PDU_FILTER_FUNC) (
  624.     IN void *Buffer,
  625.     IN unsigned int BufferLength,
  626.     IN int fDatagram
  627.     );
  628.  
  629. typedef
  630. void
  631. (__cdecl *RPC_SETFILTER_FUNC) (
  632.     IN RPCLT_PDU_FILTER_FUNC pfnFilter
  633.     );
  634.  
  635. #ifndef WINNT
  636. RPCRTAPI
  637. RPC_STATUS
  638. RPC_ENTRY
  639. I_RpcServerStartListening(
  640.     void * hWnd
  641.     ) ;
  642.  
  643. RPCRTAPI
  644. RPC_STATUS
  645. RPC_ENTRY
  646. I_RpcServerStopListening(
  647.     ) ;
  648.  
  649. typedef RPC_STATUS (*RPC_BLOCKING_FN) (
  650.     IN void * hWnd,
  651.     IN void * Context,
  652.     IN OPTIONAL void * hSyncEvent
  653.     ) ;
  654.  
  655. RPCRTAPI
  656. RPC_STATUS
  657. RPC_ENTRY
  658. I_RpcBindingSetAsync(
  659.     IN RPC_BINDING_HANDLE Binding,
  660.     IN RPC_BLOCKING_FN BlockingFn,
  661.     IN unsigned long ServerTid
  662.     ) ;
  663.  
  664. RPCRTAPI
  665. RPC_STATUS
  666. RPC_ENTRY
  667. I_RpcSetThreadParams(
  668.     IN int fClientFree,
  669.     IN OPTIONAL void *Context,
  670.     IN OPTIONAL void * hWndClient
  671.     );
  672.  
  673. RPCRTAPI
  674. unsigned int
  675. RPC_ENTRY
  676. I_RpcWindowProc(
  677.     IN void * hWnd,
  678.     IN unsigned int Message,
  679.     IN unsigned int wParam,
  680.     IN unsigned long lParam
  681.     ) ;
  682.  
  683. RPCRTAPI
  684. RPC_STATUS
  685. RPC_ENTRY
  686. I_RpcServerUnregisterEndpointA (
  687.     IN unsigned char * Protseq,
  688.     IN unsigned char * Endpoint
  689.     );
  690.  
  691. RPCRTAPI
  692. RPC_STATUS
  693. RPC_ENTRY
  694. I_RpcServerUnregisterEndpointW (
  695.     IN unsigned short * Protseq,
  696.     IN unsigned short * Endpoint
  697.     );
  698.  
  699. #ifdef UNICODE
  700. #define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointW
  701. #else
  702. #define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointA
  703. #endif
  704. #endif // WINNT
  705.  
  706. RPCRTAPI
  707. RPC_STATUS
  708. RPC_ENTRY
  709. I_RpcServerInqTransportType(
  710.     OUT unsigned int __RPC_FAR * Type
  711.     ) ;
  712.  
  713. RPCRTAPI
  714. long
  715. RPC_ENTRY
  716. I_RpcMapWin32Status (
  717.     IN RPC_STATUS Status
  718.     );
  719.  
  720.  
  721. #ifdef __cplusplus
  722. }
  723. #endif
  724.  
  725. // Reset the packing level for Dos and Windows.
  726.  
  727. #if defined(__RPC_DOS__) || defined(__RPC_WIN16__)
  728. #pragma pack()
  729. #endif
  730.  
  731. #pragma option pop /*P_O_Pop*/
  732. #endif /* __RPCDCEP_H__ */
  733.