home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c083 / 19.ddi / GENINC32.PAK / RPCDCE.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-02  |  26.2 KB  |  1,064 lines

  1. /*++
  2.  
  3. Module Name: rpcdce.h
  4.  
  5. Abstract:
  6.  
  7.     This module contains the DCE RPC runtime APIs.
  8.  
  9. --*/
  10.  
  11. /*
  12.  *      C/C++ Run Time Library - Version 6.0
  13.  *
  14.  *      Copyright (c) 1991, 1993 by Borland International
  15.  *      All Rights Reserved.
  16.  *
  17.  */
  18.  
  19. #ifndef __RPCDCE_H__
  20. #define __RPCDCE_H__
  21.  
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25.  
  26. #define IN
  27. #define OUT
  28. #define OPTIONAL
  29.  
  30. /*typedef char small;*/
  31. /*typedef unsigned char byte;*/
  32. /*typedef unsigned char boolean;*/
  33.  
  34. typedef I_RPC_HANDLE RPC_BINDING_HANDLE;
  35. typedef RPC_BINDING_HANDLE handle_t;
  36. #define rpc_binding_handle_t RPC_BINDING_HANDLE
  37.  
  38. #ifndef GUID_DEFINED
  39. #define GUID_DEFINED
  40. typedef struct _GUID
  41. {
  42.     unsigned long Data1;
  43.     unsigned short Data2;
  44.     unsigned short Data3;
  45.     unsigned char Data4[8];
  46. } GUID;
  47. #endif /* GUID_DEFINED */
  48.  
  49. #ifndef UUID_DEFINED
  50. #define UUID_DEFINED
  51. typedef GUID UUID;
  52. #define uuid_t UUID
  53. #endif
  54.  
  55. typedef struct _RPC_BINDING_VECTOR
  56. {
  57.     unsigned long Count;
  58.     RPC_BINDING_HANDLE BindingH[1];
  59. } RPC_BINDING_VECTOR;
  60. #define rpc_binding_vector_t RPC_BINDING_VECTOR
  61.  
  62. typedef struct _UUID_VECTOR
  63. {
  64.   unsigned long Count;
  65.   UUID *Uuid[1];
  66. } UUID_VECTOR;
  67. #define uuid_vector_t UUID_VECTOR
  68.  
  69. typedef void __RPC_FAR * RPC_IF_HANDLE;
  70.  
  71. #ifndef IFID_DEFINED
  72. #define IFID_DEFINED
  73. typedef struct _RPC_IF_ID
  74. {
  75.     UUID Uuid;
  76.     unsigned short VersMajor;
  77.     unsigned short VersMinor;
  78. } RPC_IF_ID;
  79. #endif
  80.  
  81. #define RPC_C_BINDING_INFINITE_TIMEOUT 10
  82. #define RPC_C_BINDING_MIN_TIMEOUT 0
  83. #define RPC_C_BINDING_DEFAULT_TIMEOUT 5
  84. #define RPC_C_BINDING_MAX_TIMEOUT 9
  85.  
  86. #define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
  87. #define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
  88.  
  89. #ifdef RPC_UNICODE_SUPPORTED
  90.  
  91. typedef struct _RPC_PROTSEQ_VECTORA
  92. {
  93.     unsigned int Count;
  94.     unsigned char __RPC_FAR * Protseq[1];
  95. } RPC_PROTSEQ_VECTORA;
  96.  
  97. typedef struct _RPC_PROTSEQ_VECTORW
  98. {
  99.     unsigned int Count;
  100.     unsigned short __RPC_FAR * Protseq[1];
  101. } RPC_PROTSEQ_VECTORW;
  102.  
  103. #ifdef UNICODE
  104. #define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORW
  105. #else /* UNICODE */
  106. #define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORA
  107. #endif /* UNICODE */
  108.  
  109. #else /* RPC_UNICODE_SUPPORTED */
  110.  
  111. typedef struct _RPC_PROTSEQ_VECTOR
  112. {
  113.     unsigned int Count;
  114.     unsigned char __RPC_FAR * Protseq[1];
  115. } RPC_PROTSEQ_VECTOR;
  116.  
  117. #endif /* RPC_UNICODE_SUPPORTED */
  118.  
  119. typedef void
  120. RPC_OBJECT_INQ_FN (
  121.     IN UUID __RPC_FAR * ObjectUuid,
  122.     OUT UUID __RPC_FAR * TypeUuid,
  123.     OUT RPC_STATUS __RPC_FAR * Status
  124.     );
  125.  
  126. #define RPC_MGR_EPV void
  127.  
  128. typedef struct
  129. {
  130.     unsigned int Count;
  131.     unsigned long Stats[1];
  132. } RPC_STATS_VECTOR;
  133.  
  134. #define RPC_C_STATS_CALLS_IN 0
  135. #define RPC_C_STATS_CALLS_OUT 1
  136. #define RPC_C_STATS_PKTS_IN 2
  137. #define RPC_C_STATS_PKTS_OUT 3
  138.  
  139. /* client */
  140. RPC_STATUS RPC_ENTRY
  141. RpcBindingCopy (
  142.     IN RPC_BINDING_HANDLE SourceBinding,
  143.     OUT RPC_BINDING_HANDLE __RPC_FAR * DestinationBinding
  144.     );
  145.  
  146. /* client */
  147. RPC_STATUS RPC_ENTRY
  148. RpcBindingFree (
  149.     IN OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
  150.     );
  151.  
  152. /* client */
  153.  
  154. #ifdef RPC_UNICODE_SUPPORTED
  155.  
  156. RPC_STATUS RPC_ENTRY
  157. RpcBindingFromStringBindingA (
  158.     IN unsigned char __RPC_FAR * StringBinding,
  159.     OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
  160.     );
  161.  
  162. RPC_STATUS RPC_ENTRY
  163. RpcBindingFromStringBindingW (
  164.     IN unsigned short __RPC_FAR * StringBinding,
  165.     OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
  166.     );
  167.  
  168. #ifdef UNICODE
  169. #define RpcBindingFromStringBinding RpcBindingFromStringBindingW
  170. #else /* UNICODE */
  171. #define RpcBindingFromStringBinding RpcBindingFromStringBindingA
  172. #endif /* UNICODE */
  173.  
  174. #else /* RPC_UNICODE_SUPPORTED */
  175.  
  176. RPC_STATUS RPC_ENTRY
  177. RpcBindingFromStringBinding (
  178.     IN unsigned char __RPC_FAR * StringBinding,
  179.     OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
  180.     );
  181.  
  182. #endif /* RPC_UNICODE_SUPPORTED */
  183.  
  184. /* RpcBindingInqAuthClient */
  185. /* RpcBindingInqAuthInfo */
  186.  
  187. /* client/server */
  188. RPC_STATUS RPC_ENTRY
  189. RpcBindingInqObject (
  190.     IN RPC_BINDING_HANDLE Binding,
  191.     OUT UUID __RPC_FAR * ObjectUuid
  192.     );
  193.  
  194. /* client */
  195. RPC_STATUS RPC_ENTRY
  196. RpcBindingReset (
  197.     IN RPC_BINDING_HANDLE Binding
  198.     );
  199.  
  200. /* RpcBindingServerFromClient : UNSUPPORTED */
  201. /* RpcBindingSetAuthInfo */
  202.  
  203. /* client */
  204. RPC_STATUS RPC_ENTRY
  205. RpcBindingSetObject (
  206.     IN RPC_BINDING_HANDLE Binding,
  207.     IN UUID __RPC_FAR * ObjectUuid
  208.     );
  209.  
  210. /* client/server */
  211.  
  212. #ifdef RPC_UNICODE_SUPPORTED
  213.  
  214. RPC_STATUS RPC_ENTRY
  215. RpcBindingToStringBindingA (
  216.     IN RPC_BINDING_HANDLE Binding,
  217.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding
  218.     );
  219.  
  220. RPC_STATUS RPC_ENTRY
  221. RpcBindingToStringBindingW (
  222.     IN RPC_BINDING_HANDLE Binding,
  223.     OUT unsigned short __RPC_FAR * __RPC_FAR * StringBinding
  224.     );
  225.  
  226. #ifdef UNICODE
  227. #define RpcBindingToStringBinding RpcBindingToStringBindingW
  228. #else /* UNICODE */
  229. #define RpcBindingToStringBinding RpcBindingToStringBindingA
  230. #endif /* UNICODE */
  231.  
  232. #else /* RPC_UNICODE_SUPPORTED */
  233.  
  234. RPC_STATUS RPC_ENTRY
  235. RpcBindingToStringBinding (
  236.     IN RPC_BINDING_HANDLE Binding,
  237.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding
  238.     );
  239.  
  240. #endif /* RPC_UNICODE_SUPPORTED */
  241.  
  242. /* client/server */
  243. RPC_STATUS RPC_ENTRY
  244. RpcBindingVectorFree (
  245.     IN OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
  246.     );
  247.  
  248. /* client/server */
  249.  
  250. #ifdef RPC_UNICODE_SUPPORTED
  251.  
  252. RPC_STATUS RPC_ENTRY
  253. RpcStringBindingComposeA (
  254.     IN unsigned char __RPC_FAR * ObjUuid OPTIONAL,
  255.     IN unsigned char __RPC_FAR * Protseq OPTIONAL,
  256.     IN unsigned char __RPC_FAR * NetworkAddr OPTIONAL,
  257.     IN unsigned char __RPC_FAR * Endpoint OPTIONAL,
  258.     IN unsigned char __RPC_FAR * Options OPTIONAL,
  259.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL
  260.     );
  261.  
  262. RPC_STATUS RPC_ENTRY
  263. RpcStringBindingComposeW (
  264.     IN unsigned short __RPC_FAR * ObjUuid OPTIONAL,
  265.     IN unsigned short __RPC_FAR * Protseq OPTIONAL,
  266.     IN unsigned short __RPC_FAR * NetworkAddr OPTIONAL,
  267.     IN unsigned short __RPC_FAR * Endpoint OPTIONAL,
  268.     IN unsigned short __RPC_FAR * Options OPTIONAL,
  269.     OUT unsigned short __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL
  270.     );
  271.  
  272. #ifdef UNICODE
  273. #define RpcStringBindingCompose RpcStringBindingComposeW
  274. #else /* UNICODE */
  275. #define RpcStringBindingCompose RpcStringBindingComposeA
  276. #endif /* UNICODE */
  277.  
  278. #else /* RPC_UNICODE_SUPPORTED */
  279.  
  280. RPC_STATUS RPC_ENTRY
  281. RpcStringBindingCompose (
  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. #endif /* RPC_UNICODE_SUPPORTED */
  291.  
  292. /* client/server */
  293.  
  294. #ifdef RPC_UNICODE_SUPPORTED
  295.  
  296. RPC_STATUS RPC_ENTRY
  297. RpcStringBindingParseA (
  298.     IN unsigned char __RPC_FAR * StringBinding,
  299.     OUT unsigned char __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL,
  300.     OUT unsigned char __RPC_FAR * __RPC_FAR * Protseq OPTIONAL,
  301.     OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL,
  302.     OUT unsigned char __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL,
  303.     OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL
  304.     );
  305.  
  306. RPC_STATUS RPC_ENTRY
  307. RpcStringBindingParseW (
  308.     IN unsigned short __RPC_FAR * StringBinding,
  309.     OUT unsigned short __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL,
  310.     OUT unsigned short __RPC_FAR * __RPC_FAR * Protseq OPTIONAL,
  311.     OUT unsigned short __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL,
  312.     OUT unsigned short __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL,
  313.     OUT unsigned short __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL
  314.     );
  315.  
  316. #ifdef UNICODE
  317. #define RpcStringBindingParse RpcStringBindingParseW
  318. #else /* UNICODE */
  319. #define RpcStringBindingParse RpcStringBindingParseA
  320. #endif /* UNICODE */
  321.  
  322. #else /* RPC_UNICODE_SUPPORTED */
  323.  
  324. RPC_STATUS RPC_ENTRY
  325. RpcStringBindingParse (
  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. #endif /* RPC_UNICODE_SUPPORTED */
  335.  
  336. /* client/server */
  337.  
  338. #ifdef RPC_UNICODE_SUPPORTED
  339.  
  340. RPC_STATUS RPC_ENTRY
  341. RpcStringFreeA (
  342.     IN OUT unsigned char __RPC_FAR * __RPC_FAR * String
  343.     );
  344.  
  345. RPC_STATUS RPC_ENTRY
  346. RpcStringFreeW (
  347.     IN OUT unsigned short __RPC_FAR * __RPC_FAR * String
  348.     );
  349.  
  350. #ifdef UNICODE
  351. #define RpcStringFree RpcStringFreeW
  352. #else /* UNICODE */
  353. #define RpcStringFree RpcStringFreeA
  354. #endif /* UNICODE */
  355.  
  356. #else /* RPC_UNICODE_SUPPORTED */
  357.  
  358. RPC_STATUS RPC_ENTRY
  359. RpcStringFree (
  360.     IN OUT unsigned char __RPC_FAR * __RPC_FAR * String
  361.     );
  362.  
  363. #endif /* RPC_UNICODE_SUPPORTED */
  364.  
  365. /* client/server */
  366. RPC_STATUS RPC_ENTRY
  367. RpcIfInqId (
  368.     IN RPC_IF_HANDLE RpcIfHandle,
  369.     OUT RPC_IF_ID __RPC_FAR * RpcIfId
  370.     );
  371.  
  372. /* client/server */
  373.  
  374. #ifdef RPC_UNICODE_SUPPORTED
  375.  
  376. RPC_STATUS RPC_ENTRY
  377. RpcNetworkIsProtseqValidA (
  378.     IN unsigned char __RPC_FAR * Protseq
  379.     );
  380.  
  381. RPC_STATUS RPC_ENTRY
  382. RpcNetworkIsProtseqValidW (
  383.     IN unsigned short __RPC_FAR * Protseq
  384.     );
  385.  
  386. #ifdef UNICODE
  387. #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidW
  388. #else /* UNICODE */
  389. #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidA
  390. #endif /* UNICODE */
  391.  
  392. #else /* RPC_UNICODE_SUPPORTED */
  393.  
  394. RPC_STATUS RPC_ENTRY
  395. RpcNetworkIsProtseqValid (
  396.     IN unsigned char __RPC_FAR * Protseq
  397.     );
  398.  
  399. #endif /* RPC_UNICODE_SUPPORTED */
  400.  
  401. /* client */
  402. RPC_STATUS RPC_ENTRY
  403. RpcMgmtInqComTimeout (
  404.     IN RPC_BINDING_HANDLE Binding,
  405.     OUT unsigned int __RPC_FAR * Timeout
  406.     );
  407.  
  408. /* client */
  409. RPC_STATUS RPC_ENTRY
  410. RpcMgmtSetComTimeout (
  411.     IN RPC_BINDING_HANDLE Binding,
  412.     IN unsigned int Timeout
  413.     );
  414.  
  415. /* server */
  416.  
  417. #ifdef RPC_UNICODE_SUPPORTED
  418.  
  419. RPC_STATUS RPC_ENTRY
  420. RpcNetworkInqProtseqsA (
  421.     OUT RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector
  422.     );
  423.  
  424. RPC_STATUS RPC_ENTRY
  425. RpcNetworkInqProtseqsW (
  426.     OUT RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector
  427.     );
  428.  
  429. #ifdef UNICODE
  430. #define RpcNetworkInqProtseqs RpcNetworkInqProtseqsW
  431. #else /* UNICODE */
  432. #define RpcNetworkInqProtseqs RpcNetworkInqProtseqsA
  433. #endif /* UNICODE */
  434.  
  435. #else /* RPC_UNICODE_SUPPORTED */
  436.  
  437. RPC_STATUS RPC_ENTRY
  438. RpcNetworkInqProtseqs (
  439.     OUT RPC_PROTSEQ_VECTOR __RPC_FAR * __RPC_FAR * ProtseqVector
  440.     );
  441.  
  442. #endif /* RPC_UNICODE_SUPPORTED */
  443.  
  444. /* server */
  445. RPC_STATUS RPC_ENTRY
  446. RpcObjectInqType (
  447.     IN UUID __RPC_FAR * ObjUuid,
  448.     OUT UUID __RPC_FAR * TypeUuid OPTIONAL
  449.     );
  450.  
  451. /* server */
  452. RPC_STATUS RPC_ENTRY
  453. RpcObjectSetInqFn (
  454.     IN RPC_OBJECT_INQ_FN __RPC_FAR * InquiryFn
  455.     );
  456.  
  457. /* server */
  458. RPC_STATUS RPC_ENTRY
  459. RpcObjectSetType (
  460.     IN UUID __RPC_FAR * ObjUuid,
  461.     IN UUID __RPC_FAR * TypeUuid OPTIONAL
  462.     );
  463.  
  464. /* server */
  465.  
  466. #ifdef RPC_UNICODE_SUPPORTED
  467.  
  468. RPC_STATUS RPC_ENTRY
  469. RpcProtseqVectorFreeA (
  470.     IN OUT RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector
  471.     );
  472.  
  473. RPC_STATUS RPC_ENTRY
  474. RpcProtseqVectorFreeW (
  475.     IN OUT RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector
  476.     );
  477.  
  478. #ifdef UNICODE
  479. #define RpcProtseqVectorFree RpcProtseqVectorFreeW
  480. #else /* UNICODE */
  481. #define RpcProtseqVectorFree RpcProtseqVectorFreeA
  482. #endif /* UNICODE */
  483.  
  484. #else /* RPC_UNICODE_SUPPORTED */
  485.  
  486. RPC_STATUS RPC_ENTRY
  487. RpcProtseqVectorFree (
  488.     IN OUT RPC_PROTSEQ_VECTOR __RPC_FAR * __RPC_FAR * ProtseqVector
  489.     );
  490.  
  491. #endif /* RPC_UNICODE_SUPPORTED */
  492.  
  493. /* server */
  494. RPC_STATUS RPC_ENTRY
  495. RpcServerInqBindings (
  496.     OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
  497.     );
  498.  
  499. /* server */
  500. RPC_STATUS RPC_ENTRY
  501. RpcServerInqIf (
  502.     IN RPC_IF_HANDLE IfSpec,
  503.     IN UUID __RPC_FAR * MgrTypeUuid, OPTIONAL
  504.     OUT RPC_MGR_EPV __RPC_FAR * __RPC_FAR * MgrEpv
  505.     );
  506.  
  507. /* server */
  508. RPC_STATUS RPC_ENTRY
  509. RpcServerListen (
  510.     IN unsigned int MinimumCallThreads,
  511.     IN unsigned int MaxCalls,
  512.     IN unsigned int DontWait
  513.     );
  514.  
  515. /* server */
  516. RPC_STATUS RPC_ENTRY
  517. RpcServerRegisterIf (
  518.     IN RPC_IF_HANDLE IfSpec,
  519.     IN UUID __RPC_FAR * MgrTypeUuid OPTIONAL,
  520.     IN RPC_MGR_EPV __RPC_FAR * MgrEpv OPTIONAL
  521.     );
  522.  
  523. /* server */
  524. RPC_STATUS RPC_ENTRY
  525. RpcServerUnregisterIf (
  526.     IN RPC_IF_HANDLE IfSpec,
  527.     IN UUID __RPC_FAR * MgrTypeUuid, OPTIONAL
  528.     IN unsigned int WaitForCallsToComplete
  529.     );
  530.  
  531. /* server */
  532. RPC_STATUS RPC_ENTRY
  533. RpcServerUseAllProtseqs (
  534.     IN unsigned int MaxCalls,
  535.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  536.     );
  537.  
  538. /* server */
  539. RPC_STATUS RPC_ENTRY
  540. RpcServerUseAllProtseqsIf (
  541.     IN unsigned int MaxCalls,
  542.     IN RPC_IF_HANDLE IfSpec,
  543.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  544.     );
  545.  
  546. /* server */
  547.  
  548. #ifdef RPC_UNICODE_SUPPORTED
  549.  
  550. RPC_STATUS RPC_ENTRY
  551. RpcServerUseProtseqA (
  552.     IN unsigned char __RPC_FAR * Protseq,
  553.     IN unsigned int MaxCalls,
  554.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  555.     );
  556.  
  557. RPC_STATUS RPC_ENTRY
  558. RpcServerUseProtseqW (
  559.     IN unsigned short __RPC_FAR * Protseq,
  560.     IN unsigned int MaxCalls,
  561.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  562.     );
  563.  
  564. #ifdef UNICODE
  565. #define RpcServerUseProtseq RpcServerUseProtseqW
  566. #else /* UNICODE */
  567. #define RpcServerUseProtseq RpcServerUseProtseqA
  568. #endif /* UNICODE */
  569.  
  570. #else /* RPC_UNICODE_SUPPORTED */
  571.  
  572. RPC_STATUS RPC_ENTRY
  573. RpcServerUseProtseq (
  574.     IN unsigned char __RPC_FAR * Protseq,
  575.     IN unsigned int MaxCalls,
  576.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  577.     );
  578.  
  579. #endif /* RPC_UNICODE_SUPPORTED */
  580.  
  581. /* server */
  582.  
  583. #ifdef RPC_UNICODE_SUPPORTED
  584.  
  585. RPC_STATUS RPC_ENTRY
  586. RpcServerUseProtseqEpA (
  587.     IN unsigned char __RPC_FAR * Protseq,
  588.     IN unsigned int MaxCalls,
  589.     IN unsigned char __RPC_FAR * Endpoint,
  590.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  591.     );
  592.  
  593. RPC_STATUS RPC_ENTRY
  594. RpcServerUseProtseqEpW (
  595.     IN unsigned short __RPC_FAR * Protseq,
  596.     IN unsigned int MaxCalls,
  597.     IN unsigned short __RPC_FAR * Endpoint,
  598.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  599.     );
  600.  
  601. #ifdef UNICODE
  602. #define RpcServerUseProtseqEp RpcServerUseProtseqEpW
  603. #else /* UNICODE */
  604. #define RpcServerUseProtseqEp RpcServerUseProtseqEpA
  605. #endif /* UNICODE */
  606.  
  607. #else /* RPC_UNICODE_SUPPORTED */
  608.  
  609. RPC_STATUS RPC_ENTRY
  610. RpcServerUseProtseqEp (
  611.     IN unsigned char __RPC_FAR * Protseq,
  612.     IN unsigned int MaxCalls,
  613.     IN unsigned char __RPC_FAR * Endpoint,
  614.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  615.     );
  616.  
  617. #endif /* RPC_UNICODE_SUPPORTED */
  618.  
  619. /* server */
  620.  
  621. #ifdef RPC_UNICODE_SUPPORTED
  622.  
  623. RPC_STATUS RPC_ENTRY
  624. RpcServerUseProtseqIfA (
  625.     IN unsigned char __RPC_FAR * Protseq,
  626.     IN unsigned int MaxCalls,
  627.     IN RPC_IF_HANDLE IfSpec,
  628.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  629.     );
  630.  
  631. RPC_STATUS RPC_ENTRY
  632. RpcServerUseProtseqIfW (
  633.     IN unsigned short __RPC_FAR * Protseq,
  634.     IN unsigned int MaxCalls,
  635.     IN RPC_IF_HANDLE IfSpec,
  636.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  637.     );
  638.  
  639. #ifdef UNICODE
  640. #define RpcServerUseProtseqIf RpcServerUseProtseqIfW
  641. #else /* UNICODE */
  642. #define RpcServerUseProtseqIf RpcServerUseProtseqIfA
  643. #endif /* UNICODE */
  644.  
  645. #else /* RPC_UNICODE_SUPPORTED */
  646.  
  647. RPC_STATUS RPC_ENTRY
  648. RpcServerUseProtseqIf (
  649.     IN unsigned char __RPC_FAR * Protseq,
  650.     IN unsigned int MaxCalls,
  651.     IN RPC_IF_HANDLE IfSpec,
  652.     IN void __RPC_FAR * SecurityDescriptor OPTIONAL
  653.     );
  654.  
  655. #endif /* RPC_UNICODE_SUPPORTED */
  656.  
  657. /* server */
  658. RPC_STATUS RPC_ENTRY
  659. RpcMgmtStatsVectorFree (
  660.     IN RPC_STATS_VECTOR ** StatsVector
  661.     );
  662.  
  663. /* server */
  664. RPC_STATUS RPC_ENTRY
  665. RpcMgmtInqStats (
  666.     IN RPC_BINDING_HANDLE Binding,
  667.     OUT RPC_STATS_VECTOR ** Statistics
  668.     );
  669.  
  670. /* server */
  671. RPC_STATUS RPC_ENTRY
  672. RpcMgmtIsServerListening (
  673.     IN RPC_BINDING_HANDLE Binding
  674.     );
  675.  
  676. /* server */
  677. RPC_STATUS RPC_ENTRY
  678. RpcMgmtStopServerListening (
  679.     IN RPC_BINDING_HANDLE Binding
  680.     );
  681.  
  682. /* server */
  683. RPC_STATUS RPC_ENTRY
  684. RpcMgmtWaitServerListen (
  685.     void
  686.     );
  687.  
  688. /* server */
  689. RPC_STATUS RPC_ENTRY
  690. RpcMgmtSetServerStackSize (
  691.     IN unsigned long ThreadStackSize
  692.     );
  693.  
  694. /* client */
  695. RPC_STATUS RPC_ENTRY
  696. RpcMgmtEnableIdleCleanup (
  697.     void
  698.     );
  699.  
  700. /* client */
  701. RPC_STATUS RPC_ENTRY
  702. RpcEpResolveBinding (
  703.     IN RPC_BINDING_HANDLE Binding,
  704.     IN RPC_IF_HANDLE IfSpec
  705.     );
  706.  
  707. /* client */
  708.  
  709. #ifdef RPC_UNICODE_SUPPORTED
  710.  
  711. RPC_STATUS RPC_ENTRY
  712. RpcNsBindingInqEntryNameA (
  713.     IN RPC_BINDING_HANDLE Binding,
  714.     IN unsigned long EntryNameSyntax,
  715.     OUT unsigned char __RPC_FAR * __RPC_FAR * EntryName
  716.     );
  717.  
  718. RPC_STATUS RPC_ENTRY
  719. RpcNsBindingInqEntryNameW (
  720.     IN RPC_BINDING_HANDLE Binding,
  721.     IN unsigned long EntryNameSyntax,
  722.     OUT unsigned short __RPC_FAR * __RPC_FAR * EntryName
  723.     );
  724.  
  725. #ifdef UNICODE
  726. #define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameW
  727. #else /* UNICODE */
  728. #define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameA
  729. #endif /* UNICODE */
  730.  
  731. #else /* RPC_UNICODE_SUPPORTED */
  732.  
  733. RPC_STATUS RPC_ENTRY
  734. RpcNsBindingInqEntryName (
  735.     IN RPC_BINDING_HANDLE Binding,
  736.     IN unsigned long EntryNameSyntax,
  737.     OUT unsigned char __RPC_FAR * __RPC_FAR * EntryName
  738.     );
  739.  
  740. #endif /* RPC_UNICODE_SUPPORTED */
  741.  
  742. typedef void __RPC_FAR * RPC_AUTH_IDENTITY_HANDLE;
  743. typedef void __RPC_FAR * RPC_AUTHZ_HANDLE;
  744.  
  745. #define RPC_C_AUTHN_LEVEL_DEFAULT 0
  746. #define RPC_C_AUTHN_LEVEL_NONE 1
  747. #define RPC_C_AUTHN_LEVEL_CONNECT 2
  748. #define RPC_C_AUTHN_LEVEL_CALL 3
  749. #define RPC_C_AUTHN_LEVEL_PKT 4
  750. #define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5
  751. #define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6
  752.  
  753. #define RPC_C_AUTHN_NONE 0
  754. #define RPC_C_AUTHN_DCE_PRIVATE 1
  755. #define RPC_C_AUTHN_DCE_PUBLIC 2
  756. #define RPC_C_AUTHN_DEC_PUBLIC 4
  757. #define RPC_C_AUTHN_DEFAULT 0xFFFFFFFFL
  758.  
  759. #define RPC_C_AUTHZ_NONE 0
  760. #define RPC_C_AUTHZ_NAME 1
  761. #define RPC_C_AUTHZ_DCE 2
  762.  
  763. #ifdef RPC_UNICODE_SUPPORTED
  764.  
  765. RPC_STATUS RPC_ENTRY
  766. RpcBindingInqAuthClientA (
  767.     IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL
  768.     OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
  769.     OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  770.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  771.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  772.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  773.     );
  774.  
  775. RPC_STATUS RPC_ENTRY
  776. RpcBindingInqAuthClientW (
  777.     IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL
  778.     OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
  779.     OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  780.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  781.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  782.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  783.     );
  784.  
  785. RPC_STATUS RPC_ENTRY
  786. RpcBindingInqAuthInfoA (
  787.     IN RPC_BINDING_HANDLE Binding,
  788.     OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  789.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  790.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  791.     OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL
  792.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  793.     );
  794.  
  795. RPC_STATUS RPC_ENTRY
  796. RpcBindingInqAuthInfoW (
  797.     IN RPC_BINDING_HANDLE Binding,
  798.     OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  799.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  800.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  801.     OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL
  802.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  803.     );
  804.  
  805. RPC_STATUS RPC_ENTRY
  806. RpcBindingSetAuthInfoA (
  807.     IN RPC_BINDING_HANDLE Binding,
  808.     IN unsigned char __RPC_FAR * ServerPrincName,
  809.     IN unsigned long AuthnLevel,
  810.     IN unsigned long AuthnSvc,
  811.     IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL
  812.     IN unsigned long AuthzSvc
  813.     );
  814.  
  815. RPC_STATUS RPC_ENTRY
  816. RpcBindingSetAuthInfoW (
  817.     IN RPC_BINDING_HANDLE Binding,
  818.     IN unsigned short __RPC_FAR * ServerPrincName,
  819.     IN unsigned long AuthnLevel,
  820.     IN unsigned long AuthnSvc,
  821.     IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL
  822.     IN unsigned long AuthzSvc
  823.     );
  824.  
  825. typedef void
  826. (__RPC_FAR * RPC_AUTH_KEY_RETRIEVAL_FN) (
  827.     IN void __RPC_FAR * Arg,
  828.     IN unsigned short __RPC_FAR * ServerPrincName,
  829.     IN unsigned long KeyVer,
  830.     OUT void __RPC_FAR * __RPC_FAR * Key,
  831.     OUT RPC_STATUS __RPC_FAR * Status
  832.     );
  833.  
  834. RPC_STATUS RPC_ENTRY
  835. RpcServerRegisterAuthInfoA (
  836.     IN unsigned char __RPC_FAR * ServerPrincName,
  837.     IN unsigned long AuthnSvc,
  838.     IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL,
  839.     IN void __RPC_FAR * Arg OPTIONAL
  840.     );
  841.  
  842. RPC_STATUS RPC_ENTRY
  843. RpcServerRegisterAuthInfoW (
  844.     IN unsigned short __RPC_FAR * ServerPrincName,
  845.     IN unsigned long AuthnSvc,
  846.     IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL,
  847.     IN void __RPC_FAR * Arg OPTIONAL
  848.     );
  849.  
  850. #ifdef UNICODE
  851. #define RpcBindingInqAuthClient RpcBindingInqAuthClientW
  852. #define RpcBindingInqAuthInfo RpcBindingInqAuthInfoW
  853. #define RpcBindingSetAuthInfo RpcBindingSetAuthInfoW
  854. #define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoW
  855. #else /* UNICODE */
  856. #define RpcBindingInqAuthClient RpcBindingInqAuthClientA
  857. #define RpcBindingInqAuthInfo RpcBindingInqAuthInfoA
  858. #define RpcBindingSetAuthInfo RpcBindingSetAuthInfoA
  859. #define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoA
  860. #endif /* UNICODE */
  861.  
  862. #else /* RPC_UNICODE_SUPPORTED */
  863.  
  864. RPC_STATUS RPC_ENTRY
  865. RpcBindingInqAuthClient (
  866.     IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL
  867.     OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
  868.     OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  869.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  870.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  871.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  872.     );
  873.  
  874. RPC_STATUS RPC_ENTRY
  875. RpcBindingInqAuthInfo (
  876.     IN RPC_BINDING_HANDLE Binding,
  877.     OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
  878.     OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
  879.     OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
  880.     OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL
  881.     OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
  882.     );
  883.  
  884. RPC_STATUS RPC_ENTRY
  885. RpcBindingSetAuthInfo (
  886.     IN RPC_BINDING_HANDLE Binding,
  887.     IN unsigned char __RPC_FAR * ServerPrincName,
  888.     IN unsigned long AuthnLevel,
  889.     IN unsigned long AuthnSvc,
  890.     IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL
  891.     IN unsigned long AuthzSvc
  892.     );
  893.  
  894. typedef void
  895. (__RPC_FAR * RPC_AUTH_KEY_RETRIEVAL_FN) (
  896.     IN void __RPC_FAR * Arg,
  897.     IN unsigned char __RPC_FAR * ServerPrincName,
  898.     IN unsigned long KeyVer,
  899.     OUT void __RPC_FAR * __RPC_FAR * Key,
  900.     OUT RPC_STATUS __RPC_FAR * Status
  901.     );
  902.  
  903. RPC_STATUS RPC_ENTRY
  904. RpcServerRegisterAuthInfo (
  905.     IN unsigned char __RPC_FAR * ServerPrincName,
  906.     IN unsigned long AuthnSvc,
  907.     IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL,
  908.     IN void __RPC_FAR * Arg OPTIONAL
  909.     );
  910.  
  911. #endif /* RPC_UNICODE_SUPPORTED */
  912.  
  913. typedef struct {
  914.     unsigned char __RPC_FAR * UserName;
  915.     unsigned char __RPC_FAR * ComputerName;
  916.     unsigned short Privilege;
  917.     unsigned long AuthFlags;
  918. } RPC_CLIENT_INFORMATION1, __RPC_FAR * PRPC_CLIENT_INFORMATION1;
  919.  
  920. void RPC_ENTRY
  921. RpcRaiseException (
  922.     IN RPC_STATUS exception
  923.     );
  924.  
  925. /* client/server */
  926. RPC_STATUS RPC_ENTRY
  927. UuidCreate (
  928.     OUT UUID __RPC_FAR * Uuid
  929.     );
  930.  
  931. #ifdef RPC_UNICODE_SUPPORTED
  932.  
  933. /* client/server */
  934. RPC_STATUS RPC_ENTRY
  935. UuidToStringA (
  936.     IN UUID __RPC_FAR * Uuid,
  937.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringUuid
  938.     );
  939.  
  940. /* client/server */
  941. RPC_STATUS RPC_ENTRY
  942. UuidFromStringA (
  943.     IN unsigned char __RPC_FAR * StringUuid,
  944.     OUT UUID __RPC_FAR * Uuid
  945.     );
  946.  
  947. /* client/server */
  948. RPC_STATUS RPC_ENTRY
  949. UuidToStringW (
  950.     IN UUID __RPC_FAR * Uuid,
  951.     OUT unsigned short __RPC_FAR * __RPC_FAR * StringUuid
  952.     );
  953.  
  954. /* client/server */
  955. RPC_STATUS RPC_ENTRY
  956. UuidFromStringW (
  957.     IN unsigned short __RPC_FAR * StringUuid,
  958.     OUT UUID __RPC_FAR * Uuid
  959.     );
  960.  
  961. #ifdef UNICODE
  962. #define UuidFromString UuidFromStringW
  963. #define UuidToString UuidToStringW
  964. #else /* UNICODE */
  965. #define UuidFromString UuidFromStringA
  966. #define UuidToString UuidToStringA
  967. #endif /* UNICODE */
  968.  
  969. #else /* RPC_UNICODE_SUPPORTED */
  970.  
  971. /* client/server */
  972. RPC_STATUS RPC_ENTRY
  973. UuidToString (
  974.     IN UUID __RPC_FAR * Uuid,
  975.     OUT unsigned char __RPC_FAR * __RPC_FAR * StringUuid
  976.     );
  977.  
  978. /* client/server */
  979. RPC_STATUS RPC_ENTRY
  980. UuidFromString (
  981.     IN unsigned char __RPC_FAR * StringUuid,
  982.     OUT UUID __RPC_FAR * Uuid
  983.     );
  984.  
  985. #endif /* RPC_UNICODE_SUPPORTED */
  986.  
  987. #ifdef RPC_UNICODE_SUPPORTED
  988.  
  989. RPC_STATUS RPC_ENTRY
  990. RpcEpRegisterNoReplaceA (
  991.     IN RPC_IF_HANDLE IfSpec,
  992.     IN RPC_BINDING_VECTOR * BindingVector,
  993.     IN UUID_VECTOR * UuidVector OPTIONAL,
  994.     IN unsigned char * Annotation
  995.     );
  996.  
  997. RPC_STATUS RPC_ENTRY
  998. RpcEpRegisterNoReplaceW (
  999.     IN RPC_IF_HANDLE IfSpec,
  1000.     IN RPC_BINDING_VECTOR * BindingVector,
  1001.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1002.     IN unsigned short  * Annotation
  1003.     );
  1004.  
  1005. RPC_STATUS RPC_ENTRY
  1006. RpcEpRegisterA (
  1007.     IN RPC_IF_HANDLE IfSpec,
  1008.     IN RPC_BINDING_VECTOR * BindingVector,
  1009.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1010.     IN unsigned char * Annotation
  1011.     );
  1012.  
  1013. RPC_STATUS RPC_ENTRY
  1014. RpcEpRegisterW (
  1015.     IN RPC_IF_HANDLE IfSpec,
  1016.     IN RPC_BINDING_VECTOR * BindingVector,
  1017.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1018.     IN unsigned short * Annotation
  1019.     );
  1020.  
  1021. #ifdef UNICODE
  1022. #define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceW
  1023. #define RpcEpRegister RpcEpRegisterW
  1024. #else /* UNICODE */
  1025. #define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceA
  1026. #define RpcEpRegister RpcEpRegisterA
  1027. #endif /* UNICODE */
  1028.  
  1029. #else /* RPC_UNICODE_SUPPORTED */
  1030.  
  1031. RPC_STATUS RPC_ENTRY
  1032. RpcEpRegisterNoReplace (
  1033.     IN RPC_IF_HANDLE IfSpec,
  1034.     IN RPC_BINDING_VECTOR * BindingVector,
  1035.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1036.     IN unsigned  char * Annotation
  1037.     );
  1038.  
  1039. RPC_STATUS RPC_ENTRY
  1040. RpcEpRegister (
  1041.     IN RPC_IF_HANDLE IfSpec,
  1042.     IN RPC_BINDING_VECTOR * BindingVector,
  1043.     IN UUID_VECTOR * UuidVector OPTIONAL,
  1044.     IN unsigned char * Annotation
  1045.     );
  1046.  
  1047. #endif /* RPC_UNICODE_SUPPORTED */
  1048.  
  1049.  
  1050. RPC_STATUS RPC_ENTRY
  1051. RpcEpUnregister(
  1052.     IN RPC_IF_HANDLE IfSpec,
  1053.     IN RPC_BINDING_VECTOR * BindingVector,
  1054.     IN UUID_VECTOR * UuidVector
  1055.     );
  1056.  
  1057. #ifdef __cplusplus
  1058. }
  1059. #endif
  1060.  
  1061. #include "rpcdcep.h"
  1062.  
  1063. #endif /* __RPCDCE_H__ */
  1064.