Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1445 lines
34 KiB

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