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.

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