RpcDceP.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:16k
源码类别:

模拟服务器

开发平台:

C/C++

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