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.

820 lines
25 KiB

  1. /*
  2. * registry.h
  3. *
  4. * Copyright (c) 1995 by DataBeam Corporation, Lexington, KY
  5. *
  6. * Abstract:
  7. * Instances of this class represent the application registry for a
  8. * single conference. This is a dual purpose class that is designed
  9. * to support both a Top Provider node and all other nodes. The
  10. * information base for the application registry is completely contained at
  11. * the Top Provider node. This information is not distributively held at
  12. * all nodes in the conference like roster information. It is completely
  13. * managed at the Top Provider. Therefore all requests to alter
  14. * information in the registry or get information from the registry are
  15. * made to the Top Provider.
  16. *
  17. * When an Application Registry object is instantiated it is informed if it
  18. * is the Top Provider or not. Application Registry objects that are Top
  19. * Providers are responsible for maintaining the registry information base
  20. * for the entire conference. It is also responsible for servicing all
  21. * incoming requests and sending out the necessary confirms. Application
  22. * Registry objects that are not Top Providers are responsible for sending
  23. * all requests to the Top Provider node. They are also responsible for
  24. * issuing confirms to the CAppSap that made the request after receiving the
  25. * responses back from the Top Provider registry. All Application Registry
  26. * requests include an Entity ID associated with the APE that made the
  27. * request. Note that all registry requests are processed in the order
  28. * that they are received. Therefore, there is no need to include
  29. * sequencing data with each request.
  30. *
  31. * Caveats:
  32. * None.
  33. *
  34. * Author:
  35. * blp
  36. */
  37. #ifndef _APPLICATION_REGISTRY_
  38. #define _APPLICATION_REGISTRY_
  39. #include "regkey.h"
  40. #include "regitem.h"
  41. #include "arostmgr.h"
  42. /*
  43. ** This list keeps up with all the APEs that are currently monitoring a
  44. ** registry entry.
  45. */
  46. class CMonitoringList : public CList
  47. {
  48. DEFINE_CLIST_(CMonitoringList, EntityID)
  49. };
  50. // This structure defines a single registry entry
  51. typedef struct
  52. {
  53. CRegKeyContainer *registry_key;
  54. CRegItem *entry_item;
  55. GCCModificationRights modification_rights;
  56. CMonitoringList monitoring_list;
  57. BOOL monitoring_state;
  58. UserID owner_id;
  59. EntityID entity_id;
  60. }
  61. REG_ENTRY;
  62. // This list holds all the registry entries
  63. class CRegEntryList : public CList
  64. {
  65. DEFINE_CLIST(CRegEntryList, REG_ENTRY*)
  66. };
  67. class CRegistry : public CRefCount
  68. {
  69. public:
  70. CRegistry(PMCSUser, BOOL top_provider, GCCConfID, CAppRosterMgrList *, PGCCError);
  71. ~CRegistry(void);
  72. void EnrollAPE(EntityID, CAppSap *);
  73. void UnEnrollAPE(EntityID);
  74. GCCError RegisterChannel(PGCCRegistryKey, ChannelID, EntityID);
  75. GCCError AssignToken(PGCCRegistryKey, EntityID);
  76. GCCError SetParameter(PGCCRegistryKey, LPOSTR, GCCModificationRights, EntityID);
  77. GCCError RetrieveEntry(PGCCRegistryKey, EntityID);
  78. GCCError DeleteEntry(PGCCRegistryKey, EntityID);
  79. GCCError MonitorRequest(PGCCRegistryKey, BOOL enable_delivery, EntityID);
  80. GCCError AllocateHandleRequest(UINT cHandles, EntityID);
  81. GCCError ProcessRegisterChannelPDU(CRegKeyContainer *, ChannelID, UserID, EntityID);
  82. GCCError ProcessAssignTokenPDU(CRegKeyContainer *, UserID, EntityID);
  83. GCCError ProcessSetParameterPDU(CRegKeyContainer *, LPOSTR param, GCCModificationRights, UserID, EntityID);
  84. void ProcessRetrieveEntryPDU(CRegKeyContainer *, UserID, EntityID);
  85. void ProcessDeleteEntryPDU(CRegKeyContainer *, UserID, EntityID);
  86. void ProcessMonitorEntryPDU(CRegKeyContainer *, UserID, EntityID);
  87. void ProcessRegistryResponsePDU(RegistryResponsePrimitiveType, CRegKeyContainer *, CRegItem *,
  88. GCCModificationRights, EntityID eidRequester,
  89. UserID uidOwner, EntityID eidOwner, GCCResult);
  90. void ProcessMonitorIndicationPDU(CRegKeyContainer *, CRegItem *, GCCModificationRights,
  91. UserID uidOwner, EntityID eidOwner);
  92. void ProcessAllocateHandleRequestPDU(UINT cHandles, EntityID eidRequester, UserID uidRequester);
  93. void ProcessAllocateHandleResponsePDU(UINT cHandles, UINT first_handle, EntityID, GCCResult);
  94. void RemoveNodeOwnership(UserID);
  95. void RemoveEntityOwnership(UserID, EntityID);
  96. void RemoveSessionKeyReference(CSessKeyContainer *);
  97. private:
  98. REG_ENTRY *GetRegistryEntry(CRegKeyContainer *);
  99. TokenID GetUnusedToken(void);
  100. GCCError AddAPEToMonitoringList(CRegKeyContainer *, EntityID, CAppSap *);
  101. void RemoveAPEFromMonitoringList(CRegKeyContainer *, EntityID);
  102. void SendMonitorEntryIndicationMessage(REG_ENTRY *);
  103. private:
  104. PMCSUser m_pMCSUserObject;
  105. CRegEntryList m_RegEntryList;
  106. BOOL m_fTopProvider;
  107. TokenID m_nCurrentTokenID;
  108. GCCConfID m_nConfID;
  109. CRegItem *m_pEmptyRegItem;
  110. CAppSapEidList2 m_AppSapEidList2;
  111. UINT m_nRegHandle;
  112. CAppRosterMgrList *m_pAppRosterMgrList;
  113. };
  114. #endif
  115. /*
  116. * CRegistry (
  117. * PMCSUser user_object,
  118. * BOOL top_provider,
  119. * GCCConfID conference_id,
  120. * CAppRosterMgrList *app_roster_manager_list,
  121. * PGCCError return_value )
  122. *
  123. * Public Function Description
  124. * This is the Application Registry constructor. It is responsible for
  125. * initializing all the instance variables used by this class. It also
  126. * creates an Empty Registry Item to pass back in confirms where a real
  127. * registry item does not exists.
  128. *
  129. * Formal Parameters:
  130. * user_object - (i) Pointer to the MCS User Attachment object.
  131. * top_provider - (i) Flag indicating if this is the Top Provider
  132. * node.
  133. * conference_id - (i) The Conference ID associated witht this
  134. * registry.
  135. * app_roster_manager_list (i) List holding all of the application
  136. * roster managers assoicated with this
  137. * conference. Needed when verifying if
  138. * an requesting APE is truly enrolled.
  139. * return_value - (o) Any errors that occur in the constructor
  140. * are returned here.
  141. *
  142. *
  143. * Return Value
  144. * GCC_NO_ERROR - No error occured.
  145. * GCC_ALLOCATION_FAILURE - A resource error occured.
  146. *
  147. * Side Effects
  148. * None.
  149. *
  150. * Caveats
  151. * None.
  152. */
  153. /*
  154. * ~ApplicationRegistry ()
  155. *
  156. * Public Function Description
  157. * This is the Application Registry destructor. It is responsible for
  158. * freeing up all the registry data allocated by this class.
  159. *
  160. * Formal Parameters:
  161. * None.
  162. *
  163. * Return Value
  164. * None.
  165. *
  166. * Side Effects
  167. * None.
  168. *
  169. * Caveats
  170. * None.
  171. */
  172. /*
  173. * void EnrollAPE(EntityID entity_id,
  174. * CAppSap *pAppSap)
  175. *
  176. * Public Function Description
  177. * This routine is used to inform the application registry of a newly
  178. * enrolling APE and its corresponding command target interface.
  179. *
  180. * Formal Parameters:
  181. * entity_id - (i) Entity ID associated with the enrolling APE.
  182. * pAppSap - (i) Command Target pointer associated with the
  183. * enrolling APE.
  184. *
  185. * Return Value
  186. * None.
  187. *
  188. * Side Effects
  189. * None.
  190. *
  191. * Caveats
  192. * None.
  193. */
  194. /*
  195. * void UnEnrollAPE ( EntityID entity_id )
  196. *
  197. * Public Function Description
  198. * This routine is used to inform the application registry of an
  199. * APE that is unerolling from the conference.
  200. *
  201. * Formal Parameters:
  202. * entity_id - (i) Entity ID associated with the unenrolling APE.
  203. *
  204. * Return Value
  205. * None.
  206. *
  207. * Side Effects
  208. * None.
  209. *
  210. * Caveats
  211. * This routine removes ownership from all the entries currently owned by
  212. * the passed in application entity. It will also remove any outstanding
  213. * request for the SAP that unenrolled.
  214. */
  215. /*
  216. * GCCError RegisterChannel (
  217. * PGCCRegistryKey registry_key,
  218. * ChannelID channel_id,
  219. * EntityID entity_id )
  220. *
  221. * Public Function Description
  222. * This routine is used by a local APE to register an MCS channel with this
  223. * conferences application registry. If this registry object does NOT
  224. * live at the top provider node this class is responsible for
  225. * forwarding the request on up to the top provider.
  226. *
  227. * Formal Parameters:
  228. * registry_key - (i) Registry Key to associate with channel being
  229. * registered (this is "API" data).
  230. * channel_id - (i) Channel ID to register.
  231. * entity_id - (i) Entity ID associated with the APE making the
  232. * request.
  233. *
  234. * Return Value
  235. * GCC_NO_ERROR - No error occured.
  236. * GCC_INVALID_REGISTRY_KEY - Specified registry key is invalid.
  237. * GCC_ALLOCATION_FAILURE - A resource error occured.
  238. *
  239. * Side Effects
  240. * None.
  241. *
  242. * Caveats
  243. * The MCS channel being registerd must be determined before this
  244. * routine is called.
  245. */
  246. /*
  247. * GCCError AssignToken (
  248. * PGCCRegistryKey registry_key,
  249. * EntityID entity_id );
  250. *
  251. * Public Function Description
  252. * This routine is used by a local APE to register an MCS Token with this
  253. * conferences application registry. If this registry object does NOT
  254. * live at the top provider node this class is responsible for
  255. * forwarding the request on up to the top provider.
  256. *
  257. * Formal Parameters:
  258. * registry_key - (i) Registry Key to associate with token being
  259. * registered (this is "API" data).
  260. * entity_id - (i) Entity ID associated with the APE making the
  261. * request.
  262. *
  263. * Return Value
  264. * GCC_NO_ERROR - No error occured.
  265. * GCC_BAD_REGISTRY_KEY - Specified registry key is invalid.
  266. * GCC_ALLOCATION_FAILURE - A resource error occured.
  267. *
  268. * Side Effects
  269. * None.
  270. *
  271. * Caveats
  272. * The MCS token being registerd is determined by GCC and is therefore
  273. * not included in the request.
  274. */
  275. /*
  276. * GCCError SetParameter (
  277. * PGCCRegistryKey registry_key,
  278. * LPOSTR parameter_value,
  279. * GCCModificationRights modification_rights,
  280. * EntityID entity_id )
  281. *
  282. * Public Function Description
  283. * This routine is used by a local APE to register a parameter with this
  284. * conferences application registry. If this registry object does NOT
  285. * live at the top provider node this class is responsible for
  286. * forwarding the request on up to the top provider.
  287. *
  288. * Formal Parameters:
  289. * registry_key - (i) Registry Key to associate with parameter
  290. * being registered (this is "API" data).
  291. * parameter_value - (i) Value of the parameter being registered.
  292. * modification_rights - (i) Modification rights associated with
  293. * parameter being registered.
  294. * entity_id - (i) Entity ID associated with the APE making the
  295. * request.
  296. *
  297. * Return Value
  298. * GCC_NO_ERROR - No error occured.
  299. * GCC_BAD_REGISTRY_KEY - Specified registry key is invalid.
  300. * GCC_INVALID_REGISTRY_ITEM - Parameter is not valid.
  301. * GCC_ALLOCATION_FAILURE - A resource error occured.
  302. *
  303. * Side Effects
  304. * None.
  305. *
  306. * Caveats
  307. * None.
  308. */
  309. /*
  310. * GCCError RetrieveEntry (
  311. * PGCCRegistryKey registry_key,
  312. * EntityID entity_id )
  313. *
  314. * Public Function Description
  315. * This routine is used by a local APE to obtain an item that was
  316. * registered with GCC. If this registry object does NOT
  317. * live at the top provider node this class is responsible for
  318. * forwarding the request on up to the top provider.
  319. *
  320. * Formal Parameters:
  321. * registry_key - (i) Registry Key associated with item being
  322. * retrieved (this is "API" data).
  323. * entity_id - (i) Entity ID associated with the APE making the
  324. * request.
  325. *
  326. * Return Value
  327. * GCC_NO_ERROR - No error occured.
  328. * GCC_BAD_REGISTRY_KEY - Specified registry key is invalid.
  329. * GCC_ALLOCATION_FAILURE - A resource error occured.
  330. *
  331. * Side Effects
  332. * None.
  333. *
  334. * Caveats
  335. * None.
  336. */
  337. /*
  338. * GCCError DeleteEntry (
  339. * PGCCRegistryKey registry_key,
  340. * EntityID entity_id )
  341. *
  342. * Public Function Description
  343. * This routine is used by a local APE to delete an item that was
  344. * registered with GCC. If this registry object does NOT
  345. * live at the top provider node this class is responsible for
  346. * forwarding the request on up to the top provider.
  347. *
  348. * Formal Parameters:
  349. * registry_key - (i) Registry Key associated with item to delete
  350. * (this is "API" data).
  351. * entity_id - (i) Entity ID associated with the APE making the
  352. * request.
  353. *
  354. * Return Value
  355. * GCC_NO_ERROR - No error occured.
  356. * GCC_BAD_REGISTRY_KEY - Specified registry key is invalid.
  357. * GCC_ALLOCATION_FAILURE - A resource error occured.
  358. *
  359. * Side Effects
  360. * None.
  361. *
  362. * Caveats
  363. * None.
  364. */
  365. /*
  366. * GCCError MonitorRequest (
  367. * PGCCRegistryKey registry_key,
  368. * BOOL enable_delivery,
  369. * EntityID entity_id )
  370. *
  371. * Public Function Description
  372. * This routine is used by a local APE to monitor an item that was
  373. * registered with GCC. If this registry object does NOT
  374. * live at the top provider node this class is responsible for
  375. * forwarding the request on up to the top provider.
  376. *
  377. * Formal Parameters:
  378. * registry_key - (i) Registry Key associated with item to
  379. * monitor (this is "API" data).
  380. * enable_delivery - (i) This flag indicates if monitoring is being
  381. * turned on or off.
  382. * entity_id - (i) Entity ID associated with the APE making the
  383. * request.
  384. *
  385. * Return Value
  386. * GCC_NO_ERROR - No error occured.
  387. * GCC_BAD_REGISTRY_KEY - Specified registry key is invalid.
  388. * GCC_ALLOCATION_FAILURE - A resource error occured.
  389. *
  390. * Side Effects
  391. * None.
  392. *
  393. * Caveats
  394. * None.
  395. */
  396. /*
  397. * GCCError AllocateHandleRequest (
  398. * UINT number_of_handles,
  399. * EntityID entity_id )
  400. *
  401. * Public Function Description
  402. * This routine is used by a local APE to allocate a specified number of
  403. * handles from the application registry. If this registry object does NOT
  404. * live at the top provider node this class is responsible for
  405. * forwarding the request on up to the top provider.
  406. *
  407. * Formal Parameters:
  408. * number_of_handles - (i) Number of handles to allocate.
  409. * entity_id - (i) Entity ID associated with the APE making the
  410. * request.
  411. *
  412. * Return Value
  413. * GCC_NO_ERROR - No error occured.
  414. *
  415. * Side Effects
  416. * None.
  417. *
  418. * Caveats
  419. * None.
  420. */
  421. /*
  422. * GCCError ProcessRegisterChannelPDU (
  423. * CRegKeyContainer *registry_key,
  424. * ChannelID channel_id,
  425. * UserID requester_id,
  426. * EntityID entity_id )
  427. *
  428. * Public Function Description
  429. * This routine is used by the top provider node to process incomming
  430. * register channel PDUs. It is responsible for returning any
  431. * necessary responses that must be sent back to the requesting node.
  432. *
  433. * Formal Parameters:
  434. * registry_key - (i) Registry Key associated with channel to
  435. * register (this is "PDU" data).
  436. * channel_id - (i) Channel ID to register.
  437. * requester_id - (i) Node ID associated with the APE making the
  438. * request.
  439. * entity_id - (i) Entity ID associated with the APE making the
  440. * request.
  441. *
  442. * Return Value
  443. * GCC_NO_ERROR - No error occured.
  444. * GCC_BAD_REGISTRY_KEY - Specified registry key is invalid.
  445. * GCC_ALLOCATION_FAILURE - A resource error occured.
  446. *
  447. * Side Effects
  448. * None.
  449. *
  450. * Caveats
  451. * None.
  452. */
  453. /*
  454. * GCCError ProcessAssignTokenPDU (
  455. * CRegKeyContainer *registry_key,
  456. * UserID requester_id,
  457. * EntityID entity_id )
  458. *
  459. * Public Function Description
  460. * This routine is used by the top provider node to process incomming
  461. * register token PDUs. It is responsible for returning any
  462. * necessary responses that must be sent back to the requesting node.
  463. *
  464. * Formal Parameters:
  465. * registry_key - (i) Registry Key associated with token to register
  466. * (this is "PDU" data).
  467. * requester_id - (i) Node ID associated with the APE making the
  468. * request.
  469. * entity_id - (i) Entity ID associated with the APE making the
  470. * request.
  471. *
  472. * Return Value
  473. * GCC_NO_ERROR - No error occured.
  474. * GCC_BAD_REGISTRY_KEY - Specified registry key is invalid.
  475. * GCC_ALLOCATION_FAILURE - A resource error occured.
  476. *
  477. * Side Effects
  478. * None.
  479. *
  480. * Caveats
  481. * None.
  482. */
  483. /*
  484. * GCCError ProcessSetParameterPDU(
  485. * CRegKeyContainer *registry_key_data,
  486. * LPOSTR parameter_value,
  487. * GCCModificationRights modification_rights,
  488. * UserID requester_node_id,
  489. * EntityID requester_entity_id)
  490. *
  491. * Public Function Description
  492. * This routine is used by the top provider node to process incomming
  493. * register parameter PDUs. It is responsible for returning any
  494. * necessary responses that must be sent back to the requesting node.
  495. *
  496. * Formal Parameters:
  497. * registry_key_data - (i) Registry Key associated with parameter to
  498. * register (this is "PDU" data).
  499. * parameter_value - (i) Value of the parameter being registered.
  500. * modification_rights - (i) Modification rights associated with the
  501. * parameter being registered.
  502. * requester_node_id - (i) Node ID associated with the APE making the
  503. * request.
  504. * requester_entity_id - (i) Entity ID associated with the APE making the
  505. * request.
  506. *
  507. * Return Value
  508. * GCC_NO_ERROR - No error occured.
  509. * GCC_BAD_REGISTRY_KEY - Specified registry key is invalid.
  510. * GCC_ALLOCATION_FAILURE - A resource error occured.
  511. *
  512. * Side Effects
  513. * None.
  514. *
  515. * Caveats
  516. * None.
  517. */
  518. /*
  519. * void ProcessRetrieveEntryPDU (
  520. * CRegKeyContainer *registry_key,
  521. * UserID requester_id,
  522. * EntityID entity_id )
  523. *
  524. * Public Function Description
  525. * This routine is used by the top provider node to process an incomming
  526. * request to retrieve a registry entry. It is responsible for returning
  527. * any necessary responses that must be sent back to the requesting node.
  528. *
  529. * Formal Parameters:
  530. * registry_key - (i) Registry Key associated with item to
  531. * retrieve (this is "PDU" data).
  532. * requester_id - (i) Node ID associated with the APE making the
  533. * request.
  534. * entity_id - (i) Entity ID associated with the APE making the
  535. * request.
  536. *
  537. * Return Value
  538. * None.
  539. *
  540. * Side Effects
  541. * None.
  542. *
  543. * Caveats
  544. * None.
  545. */
  546. /*
  547. * void ProcessDeleteEntryPDU (
  548. * CRegKeyContainer *registry_key,
  549. * UserID requester_id,
  550. * EntityID entity_id )
  551. *
  552. * Public Function Description
  553. * This routine is used by the top provider node to process an incomming
  554. * request to delete a registry entry. It is responsible for returning
  555. * any necessary responses that must be sent back to the requesting node.
  556. *
  557. * Formal Parameters:
  558. * registry_key - (i) Registry Key associated with item to
  559. * delete (this is "PDU" data).
  560. * requester_id - (i) Node ID associated with the APE making the
  561. * request.
  562. * entity_id - (i) Entity ID associated with the APE making the
  563. * request.
  564. *
  565. * Return Value
  566. * None.
  567. *
  568. * Side Effects
  569. * None.
  570. *
  571. * Caveats
  572. * None.
  573. */
  574. /*
  575. * void ProcessMonitorEntryPDU (
  576. * CRegKeyContainer *registry_key_data,
  577. * UserID requester_node_id,
  578. * EntityID requester_entity_id )
  579. *
  580. * Public Function Description
  581. * This routine is used by the top provider node to process an incomming
  582. * request to monitor a registry entry. It is responsible for returning
  583. * any necessary responses that must be sent back to the requesting node.
  584. *
  585. * Formal Parameters:
  586. * registry_key_data - (i) Registry Key associated with item to
  587. * monitor (this is "PDU" data).
  588. * requester_node_id - (i) Node ID associated with the APE making the
  589. * request.
  590. * requester_entity_id - (i) Entity ID associated with the APE making
  591. * the request.
  592. *
  593. * Return Value
  594. * None.
  595. *
  596. * Side Effects
  597. * None.
  598. *
  599. * Caveats
  600. * None.
  601. */
  602. /*
  603. * void ProcessRegistryResponsePDU(
  604. * RegistryResponsePrimitiveType primitive_type,
  605. * CRegKeyContainer *registry_key_data,
  606. * CRegItem *registry_item_data,
  607. * GCCModificationRights modification_rights,
  608. * EntityID requester_entity_id,
  609. * UserID owner_node_id,
  610. * EntityID owner_entity_id,
  611. * GCCResult result)
  612. *
  613. * Public Function Description
  614. * This routine is used by nodes other than the top provider node to
  615. * process registry responses from the top provider. It is responsible for
  616. * generating any local messages associated with this response.
  617. *
  618. * Formal Parameters:
  619. * primitive_type - (i) This parameter defines what type of
  620. * registry response this is.
  621. * registry_key_data - (i) Registry Key associated with item in
  622. * in the response (this is "PDU" data).
  623. * registry_item_data - (i) Registry item returned in the response.
  624. * modification_rights - (i) Modification rights associated with item
  625. * in response (may not be used).
  626. * requester_entity_id - (i) Entity ID associated with the APE that
  627. * made the request that generated the
  628. * response.
  629. * owner_node_id - (i) Node ID associated with APE that owns the
  630. * registry entry returned in the response.
  631. * owner_entity_id - (i) Entity ID associated with APE that owns the
  632. * registry entry returned in the response.
  633. * result - (i) Result of original request.
  634. *
  635. * Return Value
  636. * None.
  637. *
  638. * Side Effects
  639. * None.
  640. *
  641. * Caveats
  642. * None.
  643. */
  644. /*
  645. * void ProcessMonitorIndicationPDU (
  646. * CRegKeyContainer *registry_key_data,
  647. * CRegItem *registry_item_data,
  648. * GCCModificationRights modification_rights,
  649. * UserID owner_node_id,
  650. * EntityID owner_entity_id);
  651. *
  652. * Public Function Description
  653. * This routine is used by nodes other than the top provider node to
  654. * process registry monitor indications from the top provider. It is
  655. * responsible for generating any local messages associated with this
  656. * response.
  657. *
  658. * Formal Parameters:
  659. * registry_key_data - (i) Registry Key associated with item being
  660. * monitored (this is "PDU" data).
  661. * registry_item_data - (i) Registry item being monitored.
  662. * modification_rights - (i) Modification rights of registry item being
  663. * monitored (may not be used).
  664. * owner_node_id - (i) Node ID associated with APE that owns the
  665. * registry entry returned in the indication.
  666. * owner_entity_id - (i) Entity ID associated with APE that owns the
  667. * registry entry returned in the indication.
  668. *
  669. * Return Value
  670. * None.
  671. *
  672. * Side Effects
  673. * None.
  674. *
  675. * Caveats
  676. * None.
  677. */
  678. /*
  679. * void ProcessAllocateHandleRequestPDU (
  680. * UINT number_of_handles,
  681. * EntityID requester_entity_id,
  682. * UserID requester_node_id)
  683. *
  684. * Public Function Description
  685. * This routine is used by the top provider node to process an incomming
  686. * request to allocate a number of handles. It is responsible for
  687. * returning any necessary responses that must be sent back to the
  688. * requesting node.
  689. *
  690. * Formal Parameters:
  691. * number_of_handles - (i) Number of handles to allocate.
  692. * requester_node_id - (i) Node ID associated with the APE making the
  693. * request.
  694. * requester_entity_id - (i) Entity ID associated with the APE making the
  695. * request.
  696. *
  697. * Return Value
  698. * None.
  699. *
  700. * Side Effects
  701. * None.
  702. *
  703. * Caveats
  704. * None.
  705. */
  706. /*
  707. * void ProcessAllocateHandleResponsePDU (
  708. * UINT number_of_handles,
  709. * UINT first_handle,
  710. * EntityID requester_entity_id,
  711. * GCCResult result)
  712. *
  713. * Public Function Description
  714. * This routine is used by a node other than the top provider node to
  715. * process an allocate handle response. It is responsible for generating
  716. * any local messages associated with this response.
  717. *
  718. * Formal Parameters:
  719. * number_of_handles - (i) Number of handles that were allocated.
  720. * first_handle - (i) This is the value of the first handle in
  721. * the contiguous list of handles.
  722. * requester_entity_id - (i) Entity ID associated with the APE that made
  723. * the original allocate handle request.
  724. * result - (i) Result of allocate handle request.
  725. *
  726. * Return Value
  727. * None.
  728. *
  729. * Side Effects
  730. * None.
  731. *
  732. * Caveats
  733. * None.
  734. */
  735. /*
  736. * void RemoveNodeOwnership (
  737. * UserID node_id )
  738. *
  739. * Public Function Description
  740. * This routine removes ownership of all the registry entries associated
  741. * with the specified node ID. These entries become unowned. This request
  742. * should only be made from the top provider node. This is a local
  743. * operation.
  744. *
  745. * Formal Parameters:
  746. * node_id - (i) Node ID of node that owns the registry entries to set
  747. * to unowned.
  748. *
  749. * Return Value
  750. * None.
  751. *
  752. * Side Effects
  753. * None.
  754. *
  755. * Caveats
  756. * None.
  757. */
  758. /*
  759. * void RemoveEntityOwnership (
  760. * UserID node_id,
  761. * EntityID entity_id)
  762. *
  763. * Public Function Description
  764. * This routine removes ownership of all the registry entries associated
  765. * with the specified APE. These entries become unowned. This request
  766. * should only be made from the top provider node. This is a local
  767. * operation.
  768. *
  769. * Formal Parameters:
  770. * node_id - (i) Node ID of node that owns the registry entries to set
  771. * to unowned.
  772. * entity_id- (i) Entity ID of node that owns the registry entries to set
  773. * to unowned.
  774. *
  775. * Return Value
  776. * None.
  777. *
  778. * Side Effects
  779. * None.
  780. *
  781. * Caveats
  782. * None.
  783. */
  784. /*
  785. * void RemoveSessionKeyReference(CSessKeyContainer *session_key)
  786. *
  787. * Public Function Description
  788. * This routine removes all registry entries associated with the
  789. * specified session. This is a local operation.
  790. *
  791. * Formal Parameters:
  792. * session_key - (i) Session key associated with all the registry
  793. * entries to delete.
  794. *
  795. * Return Value
  796. * None.
  797. *
  798. * Side Effects
  799. * None.
  800. *
  801. * Caveats
  802. * None.
  803. */