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