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.

176 lines
3.5 KiB

  1. #ifndef _RPLPULL_
  2. #define _RPLPULL_
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /*++
  7. Copyright (c) 1989 Microsoft Corporation
  8. Module Name:
  9. rplpull.h
  10. Abstract:
  11. Functions:
  12. Portability:
  13. This header is portable.
  14. Author:
  15. Pradeep Bahl (PradeepB) Jan-1993
  16. Revision History:
  17. Modification Date Person Description of Modification
  18. ------------------ ------- ---------------------------
  19. --*/
  20. /*
  21. includes
  22. */
  23. #include "wins.h"
  24. #include "rpl.h"
  25. /*
  26. defines
  27. */
  28. /*
  29. macros
  30. */
  31. /*
  32. externs
  33. */
  34. extern HANDLE RplPullCnfEvtHdl; //handle to event signaled by main
  35. //thread when a configuration change
  36. //has to be given to the Pull handler
  37. //thread
  38. #if 0
  39. extern BOOL fRplPullAddDiffInCurrRplCycle;
  40. extern BOOL fRplPullTriggeredWins; //indicates that during the current
  41. //replication cycle, one or more
  42. //WINS's were triggered. This
  43. //when TRUE, then if the above
  44. //"AddDiff.." flag is TRUE, it means
  45. //that the PULL thread should trigger
  46. //all PULL Pnrs that have an INVALID
  47. //metric in their UpdateCount field
  48. //(of the RPL_CONFIG_T struct)
  49. extern BOOL fRplPullTrigger;//Indication to the PULL thread to
  50. //trigger Pull pnrs since one or more
  51. //address changed. fRplPullTriggerWins
  52. //has got be FALSE when this is true
  53. #endif
  54. //
  55. // indicates whether the pull thread sent a continue signal to the SC
  56. //
  57. extern BOOL fRplPullContinueSent;
  58. //
  59. // This array is indexed by the id. of an RQ server that has entries in
  60. // our database. Each owner's max. version number is stored in this array
  61. //
  62. extern PRPL_VERS_NOS_T pRplPullOwnerVersNo;
  63. extern DWORD RplPullCnfMagicNo;
  64. extern DWORD RplPullMaxNoOfWins; //slots in the RplPullOwnerVersNo
  65. /*
  66. typedef definitions
  67. */
  68. typedef struct _PUSHPNR_DATA_T {
  69. DWORD PushPnrId; //id of the Push Pnr
  70. COMM_ADD_T WinsAdd; //address of the Push Pnr
  71. PRPL_CONFIG_REC_T pPullCnfRec; //configuration record.
  72. COMM_HDL_T DlgHdl; //Hdl of dlg with Push Pnr
  73. BOOL fPrsConn; //indicates whether dlg is persistent
  74. DWORD NoOfMaps; //no of IP address to Version No.
  75. //Maps sent by the Push Pnr
  76. PRPL_ADD_VERS_NO_T pAddVers; //maps
  77. DWORD RplType; //type of replication
  78. BYTE fDlgStarted; //indicates whether the dlg has
  79. //been started
  80. BOOL fToUse;
  81. VERS_NO_T MaxVersNoToGet;
  82. } PUSHPNR_DATA_T, *PPUSHPNR_DATA_T;
  83. typedef struct _PUSHPNR_TO_PULL_FROM_T {
  84. PPUSHPNR_DATA_T pPushPnrData;
  85. VERS_NO_T VersNo; //max version number for an owner
  86. } PUSHPNR_TO_PULL_FROM_T, *PPUSHPNR_TO_PULL_FROM_T;
  87. /*
  88. function declarations
  89. */
  90. extern DWORD RplPullInit(LPVOID);
  91. extern
  92. VOID
  93. RplPullPullEntries(
  94. PCOMM_HDL_T pDlgHdl,
  95. DWORD OwnerId,
  96. VERS_NO_T MaxVersNo,
  97. VERS_NO_T MinVersNo,
  98. WINS_CLIENT_E Client_e,
  99. LPBYTE *ppRspBuff,
  100. BOOL fUpdCntrs,
  101. DWORD RplType
  102. );
  103. extern
  104. STATUS
  105. RplPullRegRepl(
  106. LPBYTE pName,
  107. DWORD NameLen,
  108. DWORD Flag,
  109. DWORD OwnerId,
  110. VERS_NO_T VersNo,
  111. DWORD NoOfAdds,
  112. PCOMM_ADD_T pNodeAdd,
  113. PCOMM_ADD_T pOwnerWinsAdd,
  114. DWORD RplType
  115. );
  116. VOID
  117. RplPullAllocVersNoArray(
  118. PRPL_VERS_NOS_T *ppRplOwnerVersNo,
  119. DWORD CurrentNo
  120. );
  121. #ifdef __cplusplus
  122. }
  123. #endif
  124. #endif //_RPLPULL_