home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 May / PCFMay2001.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / rpcdce.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  47.2 KB  |  2,057 lines

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