home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / RTLWIN32.PAK / RPCDCE.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  41.1 KB  |  1,623 lines

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