home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / geninc32.pak / RPCDCE.H < prev    next >
C/C++ Source or Header  |  1997-07-23  |  35KB  |  1,386 lines

  1. /*++
  2.  
  3. Copyright (c) 1991-1995 Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     rpcdce.h
  8.  
  9. Abstract:
  10.  
  11.     This module contains the DCE RPC runtime APIs.
  12.  
  13. --*/
  14.  
  15. #ifndef __RPCDCE_H__
  16. #define __RPCDCE_H__
  17.  
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21.  
  22. #define IN
  23. #define OUT
  24. #define OPTIONAL
  25.  
  26. /*typedef char small;*/
  27. /*typedef unsigned char byte;*/
  28. /*typedef unsigned char boolean;*/
  29.  
  30. typedef I_RPC_HANDLE RPC_BINDING_HANDLE;
  31. typedef RPC_BINDING_HANDLE handle_t;
  32. #define rpc_binding_handle_t RPC_BINDING_HANDLE
  33.  
  34. #ifndef GUID_DEFINED
  35. #define GUID_DEFINED
  36. typedef struct _GUID
  37. {
  38.     unsigned long Data1;
  39.     unsigned short Data2;
  40.     unsigned short Data3;
  41.     unsigned char Data4[8];
  42. } GUID;
  43. #endif /* GUID_DEFINED */
  44.  
  45. #ifndef UUID_DEFINED
  46. #define UUID_DEFINED
  47. typedef GUID UUID;
  48. #ifndef uuid_t
  49. #define uuid_t UUID
  50. #endif
  51. #endif
  52.  
  53. typedef struct _RPC_BINDING_VECTOR
  54. {
  55.     unsigned long Count;
  56.     RPC_BINDING_HANDLE BindingH[1];
  57. } RPC_BINDING_VECTOR;
  58. #ifndef rpc_binding_vector_t
  59. #define rpc_binding_vector_t RPC_BINDING_VECTOR
  60. #endif
  61.  
  62. typedef struct _UUID_VECTOR
  63. {
  64.   unsigned long Count;
  65.   UUID *Uuid[1];
  66. } UUID_VECTOR;
  67. #ifndef uuid_vector_t
  68. #define uuid_vector_t UUID_VECTOR
  69. #endif
  70.  
  71. typedef void __RPC_FAR * RPC_IF_HANDLE;
  72.  
  73. #ifndef IFID_DEFINED
  74. #define IFID_DEFINED
  75. typedef struct _RPC_IF_ID
  76. {
  77.     UUID Uuid;
  78.     unsigned short VersMajor;
  79.     unsigned short VersMinor;
  80. } RPC_IF_ID;
  81. #endif
  82.  
  83. #define RPC_C_BINDING_INFINITE_TIMEOUT 10
  84. #define RPC_C_BINDING_MIN_TIMEOUT 0
  85. #define RPC_C_BINDING_DEFAULT_TIMEOUT 5
  86. #define RPC_C_BINDING_MAX_TIMEOUT 9
  87.  
  88. #define RPC_C_CANCEL_INFINITE_TIMEOUT -1
  89.  
  90. #define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
  91. #define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
  92.  
  93. #ifdef RPC_UNICODE_SUPPORTED
  94.  
  95. typedef struct _RPC_PROTSEQ_VECTORA
  96. {
  97.     unsigned int Count;
  98.     unsigned char __RPC_FAR * Protseq[1];
  99. } RPC_PROTSEQ_VECTORA;
  100.  
  101. typedef struct _RPC_PROTSEQ_VECTORW
  102. {
  103.     unsigned int Count;
  104.     unsigned short __RPC_FAR * Protseq[1];
  105. } RPC_PROTSEQ_VECTORW;
  106.  
  107. #ifdef UNICODE
  108. #define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORW
  109. #else /* UNICODE */
  110. #define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORA
  111. #endif /* UNICODE */
  112.  
  113. #else /* RPC_UNICODE_SUPPORTED */
  114.  
  115. typedef struct _RPC_PROTSEQ_VECTOR
  116. {
  117.     unsigned int Count;
  118.     unsigned char __RPC_FAR * Protseq[1];
  119. } RPC_PROTSEQ_VECTOR;
  120.  
  121. #endif /* RPC_UNICODE_SUPPORTED */
  122.  
  123. typedef void __RPC_USER
  124. RPC_OBJECT_INQ_FN (
  125.     IN UUID __RPC_FAR * ObjectUuid,
  126.     OUT UUID __RPC_FAR * TypeUuid,
  127.     OUT RPC_STATUS __RPC_FAR * Status
  128.     );
  129.  
  130. #define RPC_MGR_EPV void
  131.  
  132. typedef struct
  133. {
  134.     unsigned int Count;
  135.     unsigned long Stats[1];
  136. } RPC_STATS_VECTOR;
  137.  
  138. #define RPC_C_STATS_CALLS_IN 0
  139. #define RPC_C_STATS_CALLS_OUT 1
  140. #define RPC_C_STATS_PKTS_IN 2
  141. #define RPC_C_STATS_PKTS_OUT 3
  142.  
  143. typedef struct
  144. {
  145.   unsigned long Count;
  146.   RPC_IF_ID __RPC_FAR * IfId[1];
  147. } RPC_IF_ID_VECTOR;
  148.  
  149. /* client */
  150. RPC_STATUS RPC_ENTRY
  151. RpcBindingCopy (
  152.     IN RPC_BINDING_HANDLE SourceBinding,
  153.     OUT RPC_BINDING_HANDLE __RPC_FAR * DestinationBinding
  154.     );
  155.  
  156. /* client */
  157. RPC_STATUS RPC_ENTRY
  158. RpcBindingFree (
  159.     IN OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
  160.     );
  161.  
  162. /* client */
  163.  
  164. #ifdef RPC_UNICODE_SUPPORTED
  165.  
  166. RPC_STATUS RPC_ENTRY
  167. RpcBindingFromStringBindingA (
  168.     IN unsigned char __RPC_FAR * StringBinding,
  169.     OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
  170.     );
  171.  
  172. RPC_STATUS RPC_ENTRY
  173. RpcBindingFromStringBindingW (
  174.     IN unsigned short __RPC_FAR * StringBinding,
  175.     OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
  176.     );
  177.  
  178. #ifdef UNICODE
  179. #define RpcBindingFromStringBinding RpcBindingFromStringBindingW
  180. #else /* UNICODE */
  181. #define RpcBindingFromStringBinding RpcBindingFromStringBindingA
  182. #endif /* UNICODE */
  183.  
  184. #else /* RPC_UNICODE_SUPPORTED */
  185.  
  186. RPC_STATUS RPC_ENTRY
  187. RpcBindingFromStringBinding (
  188.     IN unsigned char __RPC_FAR * StringBinding,
  189.     OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
  190.     );
  191.  
  192. #endif /* RPC_UNICODE_SUPPORTED */
  193.  
  194. /* RpcBindingInqAuthClient */
  195. /* RpcBindingInqAuthInfo */
  196.  
  197. /* client/server */
  198. RPC_STATUS RPC_ENTRY
  199. RpcBindingInqObject (
  200.     IN RPC_BINDING_HANDLE Binding,
  201.     OUT UUID __RPC_FAR * ObjectUuid
  202.     );
  203.  
  204. /* client */
  205. RPC_STATUS RPC_ENTRY
  206. RpcBindingReset (
  207.     IN RPC_BINDING_HANDLE Binding
  208.     );
  209.  
  210. /* RpcBindingServerFromClient : UNSUPPORTED */
  211. /* RpcBindingSetAuthInfo */
  212.  
  213. /* client */
  214. RPC_STATUS RPC_ENTRY
  215. RpcBindingSetObject (
  216.     IN RPC_BINDING_HANDLE Binding,
  217.     IN UUID __RPC_FAR * ObjectUuid
  218.     );
  219.  
  220. /* client/server */
  221. RPC_STATUS RPC_ENTRY
  222. RpcMgmtInqDefaultProtectLevel(
  223.     IN  unsigned long AuthnSvc,
  224.     OUT unsigned long __RPC_FAR *AuthnLevel
  225.     );
  226.  
  227. /* client/server */
  228.  
  229. #ifdef RPC_UNICODE_SUPPORTED
  230.  
  231. RPC_STATUS RPC_ENTRY
  232. RpcBindingToStringBindingA (
  233.     IN RPC_BINDING_HANDLE Binding,
  234.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding
  235.     );
  236.  
  237. RPC_STATUS RPC_ENTRY
  238. RpcBindingToStringBindingW (
  239.     IN RPC_BINDING_HANDLE Binding,
  240.     OUT unsigned short __RPC_FAR * __RPC_FAR * StringBinding
  241.     );
  242.  
  243. #ifdef UNICODE
  244. #define RpcBindingToStringBinding RpcBindingToStringBindingW
  245. #else /* UNICODE */
  246. #define RpcBindingToStringBinding RpcBindingToStringBindingA
  247. #endif /* UNICODE */
  248.  
  249. #else /* RPC_UNICODE_SUPPORTED */
  250.  
  251. RPC_STATUS RPC_ENTRY
  252. RpcBindingToStringBinding (
  253.     IN RPC_BINDING_HANDLE Binding,
  254.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding
  255.     );
  256.  
  257. #endif /* RPC_UNICODE_SUPPORTED */
  258.  
  259. /* client/server */
  260. RPC_STATUS RPC_ENTRY
  261. RpcBindingVectorFree (
  262.     IN OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
  263.     );
  264.  
  265. /* client/server */
  266.  
  267. #ifdef RPC_UNICODE_SUPPORTED
  268.  
  269. RPC_STATUS RPC_ENTRY
  270. RpcStringBindingComposeA (
  271.     IN unsigned char __RPC_FAR * ObjUuid OPTIONAL,
  272.     IN unsigned char __RPC_FAR * Protseq OPTIONAL,
  273.     IN unsigned char __RPC_FAR * NetworkAddr OPTIONAL,
  274.     IN unsigned char __RPC_FAR * Endpoint OPTIONAL,
  275.     IN unsigned char __RPC_FAR * Options OPTIONAL,
  276.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL
  277.     );
  278.  
  279. RPC_STATUS RPC_ENTRY
  280. RpcStringBindingComposeW (
  281.     IN unsigned short __RPC_FAR * ObjUuid OPTIONAL,
  282.     IN unsigned short __RPC_FAR * Protseq OPTIONAL,
  283.     IN unsigned short __RPC_FAR * NetworkAddr OPTIONAL,
  284.     IN unsigned short __RPC_FAR * Endpoint OPTIONAL,
  285.     IN unsigned short __RPC_FAR * Options OPTIONAL,
  286.     OUT unsigned short __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL
  287.     );
  288.  
  289. #ifdef UNICODE
  290. #define RpcStringBindingCompose RpcStringBindingComposeW
  291. #else /* UNICODE */
  292. #define RpcStringBindingCompose RpcStringBindingComposeA
  293. #endif /* UNICODE */
  294.  
  295. #else /* RPC_UNICODE_SUPPORTED */
  296.  
  297. RPC_STATUS RPC_ENTRY
  298. RpcStringBindingCompose (
  299.     IN unsigned char __RPC_FAR * ObjUuid OPTIONAL,
  300.     IN unsigned char __RPC_FAR * Protseq OPTIONAL,
  301.     IN unsigned char __RPC_FAR * NetworkAddr OPTIONAL,
  302.     IN unsigned char __RPC_FAR * Endpoint OPTIONAL,
  303.     IN unsigned char __RPC_FAR * Options OPTIONAL,
  304.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL
  305.     );
  306.  
  307. #endif /* RPC_UNICODE_SUPPORTED */
  308.  
  309. /* client/server */
  310.  
  311. #ifdef RPC_UNICODE_SUPPORTED
  312.  
  313. RPC_STATUS RPC_ENTRY
  314. RpcStringBindingParseA (
  315.     IN unsigned char __RPC_FAR * StringBinding,
  316.     OUT unsigned char __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL,
  317.     OUT unsigned char __RPC_FAR * __RPC_FAR * Protseq OPTIONAL,
  318.     OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL,
  319.     OUT unsigned char __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL,
  320.     OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL
  321.     );
  322.  
  323. RPC_STATUS RPC_ENTRY
  324. RpcStringBindingParseW (
  325.     IN unsigned short __RPC_FAR * StringBinding,
  326.     OUT unsigned short __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL,
  327.     OUT unsigned short __RPC_FAR * __RPC_FAR * Protseq OPTIONAL,
  328.     OUT unsigned short __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL,
  329.     OUT unsigned short __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL,
  330.     OUT unsigned short __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL
  331.     );
  332.  
  333. #ifdef UNICODE
  334. #define RpcStringBindingParse RpcStringBindingParseW
  335. #else /* UNICODE */
  336. #define RpcStringBindingParse RpcStringBindingParseA
  337. #endif /* UNICODE */
  338.  
  339. #else /* RPC_UNICODE_SUPPORTED */
  340.  
  341. RPC_STATUS RPC_ENTRY
  342. RpcStringBindingParse (
  343.     IN unsigned char __RPC_FAR * StringBinding,
  344.     OUT unsigned char __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL,
  345.     OUT unsigned char __RPC_FAR * __RPC_FAR * Protseq OPTIONAL,
  346.     OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL,
  347.     OUT unsigned char __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL,
  348.     OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL
  349.     );
  350.  
  351. #endif /* RPC_UNICODE_SUPPORTED */
  352.  
  353. /* client/server */
  354.  
  355. #ifdef RPC_UNICODE_SUPPORTED
  356.  
  357. RPC_STATUS RPC_ENTRY
  358. RpcStringFreeA (
  359.     IN OUT unsigned char __RPC_FAR * __RPC_FAR * String
  360.     );
  361.  
  362. RPC_STATUS RPC_ENTRY
  363. RpcStringFreeW (
  364.     IN OUT unsigned short __RPC_FAR * __RPC_FAR * String
  365.     );
  366.  
  367. #ifdef UNICODE
  368. #define RpcStringFree RpcStringFreeW
  369. #else /* UNICODE */
  370. #define RpcStringFree RpcStringFreeA
  371. #endif /* UNICODE */
  372.  
  373. #else /* RPC_UNICODE_SUPPORTED */
  374.  
  375. RPC_STATUS RPC_ENTRY
  376. RpcStringFree (
  377.     IN OUT unsigned char __RPC_FAR * __RPC_FAR * String
  378.     );
  379.  
  380. #endif /* RPC_UNICODE_SUPPORTED */
  381.  
  382. /* client/server */
  383. RPC_STATUS RPC_ENTRY
  384. RpcIfInqId (
  385.     IN RPC_IF_HANDLE RpcIfHandle,
  386.     OUT RPC_IF_ID __RPC_FAR * RpcIfId
  387.     );
  388.  
  389. /* client/server */
  390.  
  391. #ifdef RPC_UNICODE_SUPPORTED
  392.  
  393. RPC_STATUS RPC_ENTRY
  394. RpcNetworkIsProtseqValidA (
  395.     IN unsigned char __RPC_FAR * Protseq
  396.     );
  397.  
  398. RPC_STATUS RPC_ENTRY
  399. RpcNetworkIsProtseqValidW (
  400.     IN unsigned short __RPC_FAR * Protseq
  401.     );
  402.  
  403. #ifdef UNICODE
  404. #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidW
  405. #else /* UNICODE */
  406. #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidA
  407. #endif /* UNICODE */
  408.  
  409. #else /* RPC_UNICODE_SUPPORTED */
  410.  
  411. RPC_STATUS RPC_ENTRY
  412. RpcNetworkIsProtseqValid (
  413.     IN unsigned char __RPC_FAR * Protseq
  414.     );
  415.  
  416. #endif /* RPC_UNICODE_SUPPORTED */
  417.  
  418. /* client */
  419. RPC_STATUS RPC_ENTRY
  420. RpcMgmtInqComTimeout (
  421.     IN RPC_BINDING_HANDLE Binding,
  422.     OUT unsigned int __RPC_FAR * Timeout
  423.     );
  424.  
  425. /* client */
  426. RPC_STATUS RPC_ENTRY
  427. RpcMgmtSetComTimeout (
  428.     IN RPC_BINDING_HANDLE Binding,
  429.     IN unsigned int Timeout
  430.     );
  431.  
  432. /* client */
  433. RPC_STATUS RPC_ENTRY
  434. RpcMgmtSetCancelTimeout(
  435.     long Timeout
  436.     );
  437.  
  438.  
  439. /* server */
  440.  
  441. #ifdef RPC_UNICODE_SUPPORTED
  442.  
  443. RPC_STATUS RPC_ENTRY
  444. RpcNetworkInqProtseqsA (
  445.     OUT RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector
  446.     );
  447.  
  448. RPC_STATUS RPC_ENTRY
  449. RpcNetworkInqProtseqsW (
  450.     OUT RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector
  451.     );
  452.  
  453. #ifdef UNICODE
  454. #define RpcNetworkInqProtseqs RpcNetworkInqProtseqsW
  455. #else /* UNICODE */
  456. #define RpcNetworkInqProtseqs RpcNetworkInqProtseqsA
  457. #endif /* UNICODE */
  458.  
  459. #else /* RPC_UNICODE_SUPPORTED */
  460.  
  461. RPC_STATUS RPC_ENTRY
  462. RpcNetworkInqProtseqs (
  463.     OUT RPC_PROTSEQ_VECTOR __RPC_FAR * __RPC_FAR * ProtseqVector
  464.     );
  465.  
  466. #endif /* RPC_UNICODE_SUPPORTED */
  467.  
  468. /* server */
  469. RPC_STATUS RPC_ENTRY
  470. RpcObjectInqType (
  471.     IN UUID __RPC_FAR * ObjUuid,
  472.     OUT UUID __RPC_FAR * TypeUuid OPTIONAL
  473.     );
  474.  
  475. /* server */
  476. RPC_STATUS RPC_ENTRY
  477. RpcObjectSetInqFn (
  478.     IN RPC_OBJECT_INQ_FN __RPC_FAR * InquiryFn
  479.     );
  480.  
  481. /* server */
  482. RPC_STATUS RPC_ENTRY
  483. RpcObjectSetType (
  484.     IN UUID __RPC_FAR * ObjUuid,
  485.     IN UUID __RPC_FAR * TypeUuid OPTIONAL
  486.     );
  487.  
  488. /* server */
  489.  
  490. #ifdef RPC_UNICODE_SUPPORTED
  491.  
  492. RPC_STATUS RPC_ENTRY
  493. RpcProtseqVectorFreeA (
  494.     IN OUT RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector
  495.     );
  496.  
  497. RPC_STATUS RPC_ENTRY
  498. RpcProtseqVectorFreeW (
  499.     IN OUT RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector
  500.     );
  501.  
  502. #ifdef UNICODE
  503. #define RpcProtseqVectorFree RpcProtseqVectorFreeW
  504. #else /* UNICODE */
  505. #define RpcProtseqVectorFree RpcProtseqVectorFreeA
  506. #endif /* UNICODE */
  507.  
  508. #else /* RPC_UNICODE_SUPPORTED */
  509.  
  510. RPC_STATUS RPC_ENTRY
  511. RpcProtseqVectorFree (
  512.     IN OUT RPC_PROTSEQ_VECTOR __RPC_FAR * __RPC_FAR * ProtseqVector
  513.     );
  514.  
  515. #endif /* RPC_UNICODE_SUPPORTED */
  516.  
  517. /* server */
  518. RPC_STATUS RPC_ENTRY
  519. RpcServerInqBindings (
  520.     OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
  521.     );
  522.  
  523. /* server */
  524. RPC_STATUS RPC_ENTRY
  525. RpcServerInqIf (
  526.     IN RPC_IF_HANDLE IfSpec,
  527.     IN UUID __RPC_FAR * MgrTypeUuid, OPTIONAL
  528.     OUT RPC_MGR_EPV __RPC_FAR * __RPC_FAR * MgrEpv
  529.     );
  530.  
  531. /* server */
  532. RPC_STATUS RPC_ENTRY
  533. RpcServerListen (
  534.     IN unsigned int MinimumCallThreads,
  535.     IN unsigned int MaxCalls,
  536.     IN unsigned int DontWait
  537.     );
  538.  
  539. /* server */
  540. RPC_STATUS RPC_ENTRY
  541. RpcServerRegisterIf (
  542.     IN RPC_IF_HANDLE IfSpec,
  543.     IN UUID __RPC_FAR * MgrTypeUuid OPTIONAL,
  544.     IN RPC_MGR_EPV __RPC_FAR * MgrEpv OPTIONAL
  545.     );
  546.  
  547. /* server */
  548. RPC_STATUS RPC_ENTRY
  549. RpcServerUnregisterIf (
  550.     IN RPC_IF_HANDLE IfSpec,
  551.     IN UUID __RPC_FAR * MgrTypeUuid, OPTIONAL
  552.     IN unsigned int WaitForCallsToComplete
  553.     );
  554.  
  555. /* server */
  556. RPC_STATUS RPC_ENTRY
  557. RpcServerUseAllProtseqs (
  558.     IN unsigned int MaxCalls,
  559.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  560.     );
  561.  
  562. /* server */
  563. RPC_STATUS RPC_ENTRY
  564. RpcServerUseAllProtseqsIf (
  565.     IN unsigned int MaxCalls,
  566.     IN RPC_IF_HANDLE IfSpec,
  567.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  568.     );
  569.  
  570. /* server */
  571.  
  572. #ifdef RPC_UNICODE_SUPPORTED
  573.  
  574. RPC_STATUS RPC_ENTRY
  575. RpcServerUseProtseqA (
  576.     IN unsigned char __RPC_FAR * Protseq,
  577.     IN unsigned int MaxCalls,
  578.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  579.     );
  580.  
  581. RPC_STATUS RPC_ENTRY
  582. RpcServerUseProtseqW (
  583.     IN unsigned short __RPC_FAR * Protseq,
  584.     IN unsigned int MaxCalls,
  585.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  586.     );
  587.  
  588. #ifdef UNICODE
  589. #define RpcServerUseProtseq RpcServerUseProtseqW
  590. #else /* UNICODE */
  591. #define RpcServerUseProtseq RpcServerUseProtseqA
  592. #endif /* UNICODE */
  593.  
  594. #else /* RPC_UNICODE_SUPPORTED */
  595.  
  596. RPC_STATUS RPC_ENTRY
  597. RpcServerUseProtseq (
  598.     IN unsigned char __RPC_FAR * Protseq,
  599.     IN unsigned int MaxCalls,
  600.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  601.     );
  602.  
  603. #endif /* RPC_UNICODE_SUPPORTED */
  604.  
  605. /* server */
  606.  
  607. #ifdef RPC_UNICODE_SUPPORTED
  608.  
  609. RPC_STATUS RPC_ENTRY
  610. RpcServerUseProtseqEpA (
  611.     IN unsigned char __RPC_FAR * Protseq,
  612.     IN unsigned int MaxCalls,
  613.     IN unsigned char __RPC_FAR * Endpoint,
  614.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  615.     );
  616.  
  617. RPC_STATUS RPC_ENTRY
  618. RpcServerUseProtseqEpW (
  619.     IN unsigned short __RPC_FAR * Protseq,
  620.     IN unsigned int MaxCalls,
  621.     IN unsigned short __RPC_FAR * Endpoint,
  622.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  623.     );
  624.  
  625. #ifdef UNICODE
  626. #define RpcServerUseProtseqEp RpcServerUseProtseqEpW
  627. #else /* UNICODE */
  628. #define RpcServerUseProtseqEp RpcServerUseProtseqEpA
  629. #endif /* UNICODE */
  630.  
  631. #else /* RPC_UNICODE_SUPPORTED */
  632.  
  633. RPC_STATUS RPC_ENTRY
  634. RpcServerUseProtseqEp (
  635.     IN unsigned char __RPC_FAR * Protseq,
  636.     IN unsigned int MaxCalls,
  637.     IN unsigned char __RPC_FAR * Endpoint,
  638.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  639.     );
  640.  
  641. #endif /* RPC_UNICODE_SUPPORTED */
  642.  
  643. /* server */
  644.  
  645. #ifdef RPC_UNICODE_SUPPORTED
  646.  
  647. RPC_STATUS RPC_ENTRY
  648. RpcServerUseProtseqIfA (
  649.     IN unsigned char __RPC_FAR * Protseq,
  650.     IN unsigned int MaxCalls,
  651.     IN RPC_IF_HANDLE IfSpec,
  652.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  653.     );
  654.  
  655. RPC_STATUS RPC_ENTRY
  656. RpcServerUseProtseqIfW (
  657.     IN unsigned short __RPC_FAR * Protseq,
  658.     IN unsigned int MaxCalls,
  659.     IN RPC_IF_HANDLE IfSpec,
  660.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  661.     );
  662.  
  663. #ifdef UNICODE
  664. #define RpcServerUseProtseqIf RpcServerUseProtseqIfW
  665. #else /* UNICODE */
  666. #define RpcServerUseProtseqIf RpcServerUseProtseqIfA
  667. #endif /* UNICODE */
  668.  
  669. #else /* RPC_UNICODE_SUPPORTED */
  670.  
  671. RPC_STATUS RPC_ENTRY
  672. RpcServerUseProtseqIf (
  673.     IN unsigned char __RPC_FAR * Protseq,
  674.     IN unsigned int MaxCalls,
  675.     IN RPC_IF_HANDLE IfSpec,
  676.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  677.     );
  678.  
  679. #endif /* RPC_UNICODE_SUPPORTED */
  680.  
  681. /* server */
  682. RPC_STATUS RPC_ENTRY
  683. RpcMgmtStatsVectorFree (
  684.     IN RPC_STATS_VECTOR ** StatsVector
  685.     );
  686.  
  687. /* server */
  688. RPC_STATUS RPC_ENTRY
  689. RpcMgmtInqStats (
  690.     IN RPC_BINDING_HANDLE Binding,
  691.     OUT RPC_STATS_VECTOR ** Statistics
  692.     );
  693.  
  694. /* server */
  695. RPC_STATUS RPC_ENTRY
  696. RpcMgmtIsServerListening (
  697.     IN RPC_BINDING_HANDLE Binding
  698.     );
  699.  
  700. /* server */
  701. RPC_STATUS RPC_ENTRY
  702. RpcMgmtStopServerListening (
  703.     IN RPC_BINDING_HANDLE Binding
  704.     );
  705.  
  706. /* server */
  707. RPC_STATUS RPC_ENTRY
  708. RpcMgmtWaitServerListen (
  709.     void
  710.     );
  711.  
  712. /* server */
  713. RPC_STATUS RPC_ENTRY
  714. RpcMgmtSetServerStackSize (
  715.     IN unsigned long ThreadStackSize
  716.     );
  717.  
  718. /* client */
  719. RPC_STATUS RPC_ENTRY
  720. RpcMgmtEnableIdleCleanup (
  721.     void
  722.     );
  723.  
  724. RPC_STATUS RPC_ENTRY
  725. RpcMgmtInqIfIds (
  726.     IN RPC_BINDING_HANDLE Binding,
  727.     OUT RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR * IfIdVector
  728.     );
  729.  
  730. RPC_STATUS RPC_ENTRY
  731. RpcIfIdVectorFree (
  732.     IN OUT RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR * IfIdVector
  733.     );
  734.  
  735. #ifdef RPC_UNICODE_SUPPORTED
  736.  
  737. RPC_STATUS RPC_ENTRY
  738. RpcMgmtInqServerPrincNameA (
  739.     IN RPC_BINDING_HANDLE Binding,
  740.     IN unsigned long AuthnSvc,
  741.     OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName
  742.     );
  743.  
  744. RPC_STATUS RPC_ENTRY
  745. RpcMgmtInqServerPrincNameW (
  746.     IN RPC_BINDING_HANDLE Binding,
  747.     IN unsigned long AuthnSvc,
  748.     OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName
  749.     );
  750.  
  751. #ifdef UNICODE
  752. #define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameW
  753. #else /* UNICODE */
  754. #define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameA
  755. #endif /* UNICODE */
  756.  
  757. #else /* RPC_UNICODE_SUPPORTED */
  758.  
  759. RPC_STATUS RPC_ENTRY
  760. RpcMgmtInqServerPrincName (
  761.     IN RPC_BINDING_HANDLE Binding,
  762.     IN unsigned long AuthnSvc,
  763.     OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName
  764.     );
  765.  
  766. #endif /* RPC_UNICODE_SUPPORTED */
  767.  
  768. #ifdef RPC_UNICODE_SUPPORTED
  769.  
  770. RPC_STATUS RPC_ENTRY
  771. RpcServerInqDefaultPrincNameA (
  772.     IN unsigned long AuthnSvc,
  773.     OUT unsigned char __RPC_FAR * __RPC_FAR * PrincName
  774.     );
  775.  
  776. RPC_STATUS RPC_ENTRY
  777. RpcServerInqDefaultPrincNameW (
  778.     IN unsigned long AuthnSvc,
  779.     OUT unsigned short __RPC_FAR * __RPC_FAR * PrincName
  780.     );
  781.  
  782. #ifdef UNICODE
  783. #define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameW
  784. #else /* UNICODE */
  785. #define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameA
  786. #endif /* UNICODE */
  787.  
  788. #else /* RPC_UNICODE_SUPPORTED */
  789.  
  790. RPC_STATUS RPC_ENTRY
  791. RpcServerInqDefaultPrincName (
  792.     IN unsigned long AuthnSvc,
  793.     OUT unsigned char __RPC_FAR * __RPC_FAR * PrincName
  794.     );
  795.  
  796. #endif /* RPC_UNICODE_SUPPORTED */
  797.  
  798. /* client */
  799. RPC_STATUS RPC_ENTRY
  800. RpcEpResolveBinding (
  801.     IN RPC_BINDING_HANDLE Binding,
  802.     IN RPC_IF_HANDLE IfSpec
  803.     );
  804.  
  805. /* client */
  806.  
  807. #ifdef RPC_UNICODE_SUPPORTED
  808.  
  809. RPC_STATUS RPC_ENTRY
  810. RpcNsBindingInqEntryNameA (
  811.     IN RPC_BINDING_HANDLE Binding,
  812.     IN unsigned long EntryNameSyntax,
  813.     OUT unsigned char __RPC_FAR * __RPC_FAR * EntryName
  814.     );
  815.  
  816. RPC_STATUS RPC_ENTRY
  817. RpcNsBindingInqEntryNameW (
  818.     IN RPC_BINDING_HANDLE Binding,
  819.     IN unsigned long EntryNameSyntax,
  820.     OUT unsigned short __RPC_FAR * __RPC_FAR * EntryName
  821.     );
  822.  
  823. #ifdef UNICODE
  824. #define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameW
  825. #else /* UNICODE */
  826. #define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameA
  827. #endif /* UNICODE */
  828.  
  829. #else /* RPC_UNICODE_SUPPORTED */
  830.  
  831. RPC_STATUS RPC_ENTRY
  832. RpcNsBindingInqEntryName (
  833.     IN RPC_BINDING_HANDLE Binding,
  834.     IN unsigned long EntryNameSyntax,
  835.     OUT unsigned char __RPC_FAR * __RPC_FAR * EntryName
  836.     );
  837.  
  838. #endif /* RPC_UNICODE_SUPPORTED */
  839.  
  840. typedef void __RPC_FAR * RPC_AUTH_IDENTITY_HANDLE;
  841. typedef void __RPC_FAR * RPC_AUTHZ_HANDLE;
  842.  
  843. #define RPC_C_AUTHN_LEVEL_DEFAULT 0
  844. #define RPC_C_AUTHN_LEVEL_NONE 1
  845. #define RPC_C_AUTHN_LEVEL_CONNECT 2
  846. #define RPC_C_AUTHN_LEVEL_CALL 3
  847. #define RPC_C_AUTHN_LEVEL_PKT 4
  848. #define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5
  849. #define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6
  850.  
  851.  
  852. #define RPC_C_PROTECT_LEVEL_DEFAULT       (RPC_C_AUTHN_LEVEL_DEFAULT)
  853. #define RPC_C_PROTECT_LEVEL_NONE          (RPC_C_AUTHN_LEVEL_NONE)
  854. #define RPC_C_PROTECT_LEVEL_CONNECT       (RPC_C_AUTHN_LEVEL_CONNECT)
  855. #define RPC_C_PROTECT_LEVEL_CALL          (RPC_C_AUTHN_LEVEL_CALL)
  856. #define RPC_C_PROTECT_LEVEL_PKT           (RPC_C_AUTHN_LEVEL_PKT)
  857. #define RPC_C_PROTECT_LEVEL_PKT_INTEGRITY (RPC_C_AUTHN_LEVEL_PKT_INTEGRITY)
  858. #define RPC_C_PROTECT_LEVEL_PKT_PRIVACY   (RPC_C_AUTHN_LEVEL_PKT_PRIVACY)
  859.  
  860. #define RPC_C_AUTHN_NONE 0
  861. #define RPC_C_AUTHN_DCE_PRIVATE 1
  862. #define RPC_C_AUTHN_DCE_PUBLIC 2
  863. #define RPC_C_AUTHN_DEC_PUBLIC 4
  864. #define RPC_C_AUTHN_WINNT       10
  865. #define RPC_C_AUTHN_DEFAULT 0xFFFFFFFFL
  866.  
  867. #if defined(__RPC_DOS__) || defined(__RPC_WIN16__)
  868. typedef struct _SEC_WINNT_AUTH_IDENTITY
  869. {
  870.   char __RPC_FAR *User;
  871.   char __RPC_FAR *Domain;
  872.   char __RPC_FAR *Password;
  873. } SEC_WINNT_AUTH_IDENTITY;
  874. #else
  875.  
  876.  
  877. #define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1
  878. #define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2
  879.  
  880. typedef struct _SEC_WINNT_AUTH_IDENTITY_W {
  881.   unsigned short __RPC_FAR *User;
  882.   unsigned long UserLength;
  883.   unsigned short __RPC_FAR *Domain;
  884.   unsigned long DomainLength;
  885.   unsigned short __RPC_FAR *Password;
  886.   unsigned long PasswordLength;
  887.   unsigned long Flags;
  888. } SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W;
  889.  
  890. typedef struct _SEC_WINNT_AUTH_IDENTITY_A {
  891.   unsigned char __RPC_FAR *User;
  892.   unsigned long UserLength;
  893.   unsigned char __RPC_FAR *Domain;
  894.   unsigned long DomainLength;
  895.   unsigned char __RPC_FAR *Password;
  896.   unsigned long PasswordLength;
  897.   unsigned long Flags;
  898. } SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A;
  899.  
  900. #ifdef UNICODE
  901. #define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_W
  902. #define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_W
  903. #define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_W
  904. #else // UNICODE
  905. #define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_A
  906. #define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_A
  907. #define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_A
  908. #endif // UNICODE
  909. #endif // defined(__RPC_DOS__) || defined(__RPC_WIN16__)
  910.  
  911. #define RPC_C_AUTHZ_NONE 0
  912. #define RPC_C_AUTHZ_NAME 1
  913. #define RPC_C_AUTHZ_DCE 2
  914.  
  915. #ifdef RPC_UNICODE_SUPPORTED
  916.  
  917. RPC_STATUS RPC_ENTRY
  918. RpcBindingInqAuthClientA (
  919.     IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL
  920.     OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
  921.     OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  922.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  923.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  924.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  925.     );
  926.  
  927. RPC_STATUS RPC_ENTRY
  928. RpcBindingInqAuthClientW (
  929.     IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL
  930.     OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
  931.     OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  932.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  933.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  934.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  935.     );
  936.  
  937. RPC_STATUS RPC_ENTRY
  938. RpcBindingInqAuthInfoA (
  939.     IN RPC_BINDING_HANDLE Binding,
  940.     OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  941.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  942.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  943.     OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL
  944.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  945.     );
  946.  
  947. RPC_STATUS RPC_ENTRY
  948. RpcBindingInqAuthInfoW (
  949.     IN RPC_BINDING_HANDLE Binding,
  950.     OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  951.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  952.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  953.     OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL
  954.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  955.     );
  956.  
  957. RPC_STATUS RPC_ENTRY
  958. RpcBindingSetAuthInfoA (
  959.     IN RPC_BINDING_HANDLE Binding,
  960.     IN unsigned char __RPC_FAR * ServerPrincName,
  961.     IN unsigned long AuthnLevel,
  962.     IN unsigned long AuthnSvc,
  963.     IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL
  964.     IN unsigned long AuthzSvc
  965.     );
  966.  
  967. RPC_STATUS RPC_ENTRY
  968. RpcBindingSetAuthInfoW (
  969.     IN RPC_BINDING_HANDLE Binding,
  970.     IN unsigned short __RPC_FAR * ServerPrincName,
  971.     IN unsigned long AuthnLevel,
  972.     IN unsigned long AuthnSvc,
  973.     IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL
  974.     IN unsigned long AuthzSvc
  975.     );
  976.  
  977. typedef void
  978. (__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN) (
  979.     IN void __RPC_FAR * Arg,
  980.     IN unsigned short __RPC_FAR * ServerPrincName,
  981.     IN unsigned long KeyVer,
  982.     OUT void __RPC_FAR * __RPC_FAR * Key,
  983.     OUT RPC_STATUS __RPC_FAR * Status
  984.     );
  985.  
  986. RPC_STATUS RPC_ENTRY
  987. RpcServerRegisterAuthInfoA (
  988.     IN unsigned char __RPC_FAR * ServerPrincName,
  989.     IN unsigned long AuthnSvc,
  990.     IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL,
  991.     IN void __RPC_FAR * Arg OPTIONAL
  992.     );
  993.  
  994. RPC_STATUS RPC_ENTRY
  995. RpcServerRegisterAuthInfoW (
  996.     IN unsigned short __RPC_FAR * ServerPrincName,
  997.     IN unsigned long AuthnSvc,
  998.     IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL,
  999.     IN void __RPC_FAR * Arg OPTIONAL
  1000.     );
  1001.  
  1002. #ifdef UNICODE
  1003. #define RpcBindingInqAuthClient RpcBindingInqAuthClientW
  1004. #define RpcBindingInqAuthInfo RpcBindingInqAuthInfoW
  1005. #define RpcBindingSetAuthInfo RpcBindingSetAuthInfoW
  1006. #define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoW
  1007. #else /* UNICODE */
  1008. #define RpcBindingInqAuthClient RpcBindingInqAuthClientA
  1009. #define RpcBindingInqAuthInfo RpcBindingInqAuthInfoA
  1010. #define RpcBindingSetAuthInfo RpcBindingSetAuthInfoA
  1011. #define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoA
  1012. #endif /* UNICODE */
  1013.  
  1014. #else /* RPC_UNICODE_SUPPORTED */
  1015.  
  1016. RPC_STATUS RPC_ENTRY
  1017. RpcBindingInqAuthClient (
  1018.     IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL
  1019.     OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
  1020.     OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  1021.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  1022.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  1023.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  1024.     );
  1025.  
  1026. RPC_STATUS RPC_ENTRY
  1027. RpcBindingInqAuthInfo (
  1028.     IN RPC_BINDING_HANDLE Binding,
  1029.     OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  1030.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  1031.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  1032.     OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL
  1033.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  1034.     );
  1035.  
  1036. RPC_STATUS RPC_ENTRY
  1037. RpcBindingSetAuthInfo (
  1038.     IN RPC_BINDING_HANDLE Binding,
  1039.     IN unsigned char __RPC_FAR * ServerPrincName,
  1040.     IN unsigned long AuthnLevel,
  1041.     IN unsigned long AuthnSvc,
  1042.     IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL
  1043.     IN unsigned long AuthzSvc
  1044.     );
  1045.  
  1046. typedef void
  1047. (__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN) (
  1048.     IN void __RPC_FAR * Arg,
  1049.     IN unsigned char __RPC_FAR * ServerPrincName,
  1050.     IN unsigned long KeyVer,
  1051.     OUT void __RPC_FAR * __RPC_FAR * Key,
  1052.     OUT RPC_STATUS __RPC_FAR * Status
  1053.     );
  1054.  
  1055. RPC_STATUS RPC_ENTRY
  1056. RpcServerRegisterAuthInfo (
  1057.     IN unsigned char __RPC_FAR * ServerPrincName,
  1058.     IN unsigned long AuthnSvc,
  1059.     IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL,
  1060.     IN void __RPC_FAR * Arg OPTIONAL
  1061.     );
  1062.  
  1063. #endif /* RPC_UNICODE_SUPPORTED */
  1064.  
  1065. typedef struct {
  1066.     unsigned char __RPC_FAR * UserName;
  1067.     unsigned char __RPC_FAR * ComputerName;
  1068.     unsigned short Privilege;
  1069.     unsigned long AuthFlags;
  1070. } RPC_CLIENT_INFORMATION1, __RPC_FAR * PRPC_CLIENT_INFORMATION1;
  1071.  
  1072. RPC_STATUS RPC_ENTRY
  1073. RpcBindingServerFromClient (
  1074.     IN RPC_BINDING_HANDLE ClientBinding,
  1075.     OUT RPC_BINDING_HANDLE __RPC_FAR * ServerBinding
  1076.     );
  1077.  
  1078. void RPC_ENTRY
  1079. RpcRaiseException (
  1080.     IN RPC_STATUS exception
  1081.     );
  1082.  
  1083. RPC_STATUS RPC_ENTRY
  1084. RpcTestCancel(
  1085.     );
  1086.  
  1087. RPC_STATUS RPC_ENTRY
  1088. RpcCancelThread(
  1089.     IN void * Thread
  1090.     );
  1091.  
  1092. /* client/server */
  1093. RPC_STATUS RPC_ENTRY
  1094. UuidCreate (
  1095.     OUT UUID __RPC_FAR * Uuid
  1096.     );
  1097.  
  1098. #ifdef RPC_UNICODE_SUPPORTED
  1099.  
  1100. /* client/server */
  1101. RPC_STATUS RPC_ENTRY
  1102. UuidToStringA (
  1103.     IN UUID __RPC_FAR * Uuid,
  1104.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringUuid
  1105.     );
  1106.  
  1107. /* client/server */
  1108. RPC_STATUS RPC_ENTRY
  1109. UuidFromStringA (
  1110.     IN unsigned char __RPC_FAR * StringUuid,
  1111.     OUT UUID __RPC_FAR * Uuid
  1112.     );
  1113.  
  1114. /* client/server */
  1115. RPC_STATUS RPC_ENTRY
  1116. UuidToStringW (
  1117.     IN UUID __RPC_FAR * Uuid,
  1118.     OUT unsigned short __RPC_FAR * __RPC_FAR * StringUuid
  1119.     );
  1120.  
  1121. /* client/server */
  1122. RPC_STATUS RPC_ENTRY
  1123. UuidFromStringW (
  1124.     IN unsigned short __RPC_FAR * StringUuid,
  1125.     OUT UUID __RPC_FAR * Uuid
  1126.     );
  1127.  
  1128. #ifdef UNICODE
  1129. #define UuidFromString UuidFromStringW
  1130. #define UuidToString UuidToStringW
  1131. #else /* UNICODE */
  1132. #define UuidFromString UuidFromStringA
  1133. #define UuidToString UuidToStringA
  1134. #endif /* UNICODE */
  1135.  
  1136. #else /* RPC_UNICODE_SUPPORTED */
  1137.  
  1138. /* client/server */
  1139. RPC_STATUS RPC_ENTRY
  1140. UuidToString (
  1141.     IN UUID __RPC_FAR * Uuid,
  1142.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringUuid
  1143.     );
  1144.  
  1145. /* client/server */
  1146. RPC_STATUS RPC_ENTRY
  1147. UuidFromString (
  1148.     IN unsigned char __RPC_FAR * StringUuid,
  1149.     OUT UUID __RPC_FAR * Uuid
  1150.     );
  1151.  
  1152. #endif /* RPC_UNICODE_SUPPORTED */
  1153.  
  1154. signed int RPC_ENTRY
  1155. UuidCompare (
  1156.     IN UUID __RPC_FAR * Uuid1,
  1157.     IN UUID __RPC_FAR * Uuid2,
  1158.     OUT RPC_STATUS __RPC_FAR * Status
  1159.     );
  1160.  
  1161. RPC_STATUS RPC_ENTRY
  1162. UuidCreateNil (
  1163.     OUT UUID __RPC_FAR * NilUuid
  1164.     );
  1165.  
  1166. int RPC_ENTRY
  1167. UuidEqual (
  1168.     IN UUID __RPC_FAR * Uuid1,
  1169.     IN UUID __RPC_FAR * Uuid2,
  1170.     OUT RPC_STATUS __RPC_FAR * Status
  1171.     );
  1172.  
  1173. unsigned short RPC_ENTRY
  1174. UuidHash (
  1175.     IN UUID __RPC_FAR * Uuid,
  1176.     OUT RPC_STATUS __RPC_FAR * Status
  1177.     );
  1178.  
  1179. int RPC_ENTRY
  1180. UuidIsNil (
  1181.     IN UUID __RPC_FAR * Uuid,
  1182.     OUT RPC_STATUS __RPC_FAR * Status
  1183.     );
  1184.  
  1185. #ifdef RPC_UNICODE_SUPPORTED
  1186.  
  1187. RPC_STATUS RPC_ENTRY
  1188. RpcEpRegisterNoReplaceA (
  1189.     IN RPC_IF_HANDLE IfSpec,
  1190.     IN RPC_BINDING_VECTOR * BindingVector,
  1191.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1192.     IN unsigned char * Annotation
  1193.     );
  1194.  
  1195. RPC_STATUS RPC_ENTRY
  1196. RpcEpRegisterNoReplaceW (
  1197.     IN RPC_IF_HANDLE IfSpec,
  1198.     IN RPC_BINDING_VECTOR * BindingVector,
  1199.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1200.     IN unsigned short  * Annotation
  1201.     );
  1202.  
  1203. RPC_STATUS RPC_ENTRY
  1204. RpcEpRegisterA (
  1205.     IN RPC_IF_HANDLE IfSpec,
  1206.     IN RPC_BINDING_VECTOR * BindingVector,
  1207.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1208.     IN unsigned char * Annotation
  1209.     );
  1210.  
  1211. RPC_STATUS RPC_ENTRY
  1212. RpcEpRegisterW (
  1213.     IN RPC_IF_HANDLE IfSpec,
  1214.     IN RPC_BINDING_VECTOR * BindingVector,
  1215.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1216.     IN unsigned short * Annotation
  1217.     );
  1218.  
  1219. #ifdef UNICODE
  1220. #define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceW
  1221. #define RpcEpRegister RpcEpRegisterW
  1222. #else /* UNICODE */
  1223. #define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceA
  1224. #define RpcEpRegister RpcEpRegisterA
  1225. #endif /* UNICODE */
  1226.  
  1227. #else /* RPC_UNICODE_SUPPORTED */
  1228.  
  1229. RPC_STATUS RPC_ENTRY
  1230. RpcEpRegisterNoReplace (
  1231.     IN RPC_IF_HANDLE IfSpec,
  1232.     IN RPC_BINDING_VECTOR * BindingVector,
  1233.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1234.     IN unsigned  char * Annotation
  1235.     );
  1236.  
  1237. RPC_STATUS RPC_ENTRY
  1238. RpcEpRegister (
  1239.     IN RPC_IF_HANDLE IfSpec,
  1240.     IN RPC_BINDING_VECTOR * BindingVector,
  1241.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1242.     IN unsigned char * Annotation
  1243.     );
  1244.  
  1245. #endif /* RPC_UNICODE_SUPPORTED */
  1246.  
  1247.  
  1248. RPC_STATUS RPC_ENTRY
  1249. RpcEpUnregister(
  1250.     IN RPC_IF_HANDLE IfSpec,
  1251.     IN RPC_BINDING_VECTOR * BindingVector,
  1252.     IN UUID_VECTOR * UuidVector
  1253.     );
  1254.  
  1255. #ifdef RPC_UNICODE_SUPPORTED
  1256.  
  1257. RPC_STATUS RPC_ENTRY
  1258. DceErrorInqTextA (
  1259.     IN RPC_STATUS RpcStatus,
  1260.     OUT unsigned char __RPC_FAR * ErrorText
  1261.     );
  1262.  
  1263. RPC_STATUS RPC_ENTRY
  1264. DceErrorInqTextW (
  1265.     IN RPC_STATUS RpcStatus,
  1266.     OUT unsigned short __RPC_FAR * ErrorText
  1267.     );
  1268.  
  1269. #ifdef UNICODE
  1270. #define DceErrorInqText DceErrorInqTextW
  1271. #else /* UNICODE */
  1272. #define DceErrorInqText DceErrorInqTextA
  1273. #endif /* UNICODE */
  1274.  
  1275. #else /* RPC_UNICODE_SUPPORTED */
  1276.  
  1277. RPC_STATUS RPC_ENTRY
  1278. DceErrorInqText (
  1279.     IN RPC_STATUS RpcStatus,
  1280.     OUT unsigned char __RPC_FAR * ErrorText
  1281.     );
  1282.  
  1283. #endif /* RPC_UNICODE_SUPPORTED */
  1284.  
  1285. #define DCE_C_ERROR_STRING_LEN 256
  1286.  
  1287. typedef I_RPC_HANDLE * RPC_EP_INQ_HANDLE;
  1288.  
  1289. #define  RPC_C_EP_ALL_ELTS        0
  1290. #define  RPC_C_EP_MATCH_BY_IF     1
  1291. #define  RPC_C_EP_MATCH_BY_OBJ    2
  1292. #define  RPC_C_EP_MATCH_BY_BOTH   3
  1293.  
  1294. #define  RPC_C_VERS_ALL           1
  1295. #define  RPC_C_VERS_COMPATIBLE    2
  1296. #define  RPC_C_VERS_EXACT         3
  1297. #define  RPC_C_VERS_MAJOR_ONLY    4
  1298. #define  RPC_C_VERS_UPTO          5
  1299.  
  1300. RPC_STATUS RPC_ENTRY
  1301. RpcMgmtEpEltInqBegin (
  1302.     IN RPC_BINDING_HANDLE EpBinding OPTIONAL,
  1303.     IN unsigned long InquiryType,
  1304.     IN RPC_IF_ID __RPC_FAR * IfId OPTIONAL,
  1305.     IN unsigned long VersOption OPTIONAL,
  1306.     IN UUID __RPC_FAR * ObjectUuid OPTIONAL,
  1307.     OUT RPC_EP_INQ_HANDLE __RPC_FAR * InquiryContext
  1308.     );
  1309.  
  1310. RPC_STATUS RPC_ENTRY
  1311. RpcMgmtEpEltInqDone (
  1312.     IN OUT RPC_EP_INQ_HANDLE __RPC_FAR * InquiryContext
  1313.     );
  1314.  
  1315. #ifdef RPC_UNICODE_SUPPORTED
  1316.  
  1317. RPC_STATUS RPC_ENTRY
  1318. RpcMgmtEpEltInqNextA (
  1319.     IN RPC_EP_INQ_HANDLE InquiryContext,
  1320.     OUT RPC_IF_ID __RPC_FAR * IfId,
  1321.     OUT RPC_BINDING_HANDLE __RPC_FAR * Binding OPTIONAL,
  1322.     OUT UUID __RPC_FAR * ObjectUuid OPTIONAL,
  1323.     OUT unsigned char __RPC_FAR * __RPC_FAR * Annotation OPTIONAL
  1324.     );
  1325.  
  1326. RPC_STATUS RPC_ENTRY
  1327. RpcMgmtEpEltInqNextW (
  1328.     IN RPC_EP_INQ_HANDLE InquiryContext,
  1329.     OUT RPC_IF_ID __RPC_FAR * IfId,
  1330.     OUT RPC_BINDING_HANDLE __RPC_FAR * Binding OPTIONAL,
  1331.     OUT UUID __RPC_FAR * ObjectUuid OPTIONAL,
  1332.     OUT unsigned short __RPC_FAR * __RPC_FAR * Annotation OPTIONAL
  1333.     );
  1334.  
  1335. #ifdef UNICODE
  1336. #define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextW
  1337. #else /* UNICODE */
  1338. #define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextA
  1339. #endif /* UNICODE */
  1340.  
  1341. #else /* RPC_UNICODE_SUPPORTED */
  1342.  
  1343. RPC_STATUS RPC_ENTRY
  1344. RpcMgmtEpEltInqNext (
  1345.     IN RPC_EP_INQ_HANDLE InquiryContext,
  1346.     OUT RPC_IF_ID __RPC_FAR * IfId,
  1347.     OUT RPC_BINDING_HANDLE __RPC_FAR * Binding OPTIONAL,
  1348.     OUT unsigned char __RPC_FAR * __RPC_FAR * Annotation OPTIONAL
  1349.     );
  1350.  
  1351. #endif /* RPC_UNICODE_SUPPORTED */
  1352.  
  1353. RPC_STATUS RPC_ENTRY
  1354. RpcMgmtEpUnregister (
  1355.     IN RPC_BINDING_HANDLE EpBinding OPTIONAL,
  1356.     IN RPC_IF_ID __RPC_FAR * IfId,
  1357.     IN RPC_BINDING_HANDLE Binding,
  1358.     IN UUID __RPC_FAR * ObjectUuid OPTIONAL
  1359.     );
  1360.  
  1361. typedef int
  1362. (__RPC_API * RPC_MGMT_AUTHORIZATION_FN) (
  1363.     IN RPC_BINDING_HANDLE ClientBinding,
  1364.     IN unsigned long RequestedMgmtOperation,
  1365.     OUT RPC_STATUS __RPC_FAR * Status
  1366.     );
  1367.  
  1368. #define RPC_C_MGMT_INQ_IF_IDS         0
  1369. #define RPC_C_MGMT_INQ_PRINC_NAME     1
  1370. #define RPC_C_MGMT_INQ_STATS          2
  1371. #define RPC_C_MGMT_IS_SERVER_LISTEN   3
  1372. #define RPC_C_MGMT_STOP_SERVER_LISTEN 4
  1373.  
  1374. RPC_STATUS RPC_ENTRY
  1375. RpcMgmtSetAuthorizationFn (
  1376.     IN RPC_MGMT_AUTHORIZATION_FN AuthorizationFn
  1377.     );
  1378.  
  1379. #include <rpcdcep.h>
  1380.  
  1381. #ifdef __cplusplus
  1382. }
  1383. #endif
  1384.  
  1385. #endif /* __RPCDCE_H__ */
  1386.