home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / rpcdce.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  46KB  |  1,954 lines

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