RpcDce.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:47k
源码类别:

模拟服务器

开发平台:

C/C++

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