Leaked source code of windows server 2003
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.

197 lines
4.5 KiB

  1. /*++
  2. Copyright (c) 1992-1996 Microsoft Corporation
  3. Module Name:
  4. testdll.c
  5. Abstract:
  6. LAN Manager MIB 2 Extension Agent DLL.
  7. Environment:
  8. User Mode - Win32
  9. Revision History:
  10. 10-May-1996 DonRyan
  11. Removed banner from Technology Dynamics, Inc.
  12. --*/
  13. //--------------------------- WINDOWS DEPENDENCIES --------------------------
  14. #include <windows.h>
  15. //--------------------------- STANDARD DEPENDENCIES -- #include<xxxxx.h> ----
  16. //#include <stdio.h>
  17. //--------------------------- MODULE DEPENDENCIES -- #include"xxxxx.h" ------
  18. #include <snmp.h>
  19. #include <snmputil.h>
  20. #include <time.h>
  21. #include <lm.h>
  22. #include "hash.h"
  23. #include "mib.h"
  24. #include "lmcache.h" // for cleanup the cache by SnmpExtensionClose
  25. //--------------------------- SELF-DEPENDENCY -- ONE #include"module.h" -----
  26. //--------------------------- PUBLIC VARIABLES --(same as in module.h file)--
  27. //--------------------------- PRIVATE CONSTANTS -----------------------------
  28. //--------------------------- PRIVATE STRUCTS -------------------------------
  29. //--------------------------- PRIVATE VARIABLES -----------------------------
  30. DWORD timeZero = 0;
  31. extern void FreePrintQTable();
  32. extern void FreeSessTable();
  33. extern void FreeShareTable();
  34. extern void FreeSrvcTable();
  35. extern void FreeDomServerTable();
  36. extern void FreeUserTable();
  37. extern void FreeWkstaUsesTable();
  38. extern void FreeDomOtherDomainTable();
  39. //--------------------------- PRIVATE PROTOTYPES ----------------------------
  40. //--------------------------- PRIVATE PROCEDURES ----------------------------
  41. //--------------------------- PUBLIC PROCEDURES -----------------------------
  42. BOOL DllEntryPoint(
  43. HINSTANCE hInstDLL,
  44. DWORD dwReason,
  45. LPVOID lpReserved)
  46. {
  47. switch(dwReason)
  48. {
  49. case DLL_PROCESS_ATTACH:
  50. DisableThreadLibraryCalls( hInstDLL );
  51. break;
  52. case DLL_PROCESS_DETACH:
  53. case DLL_THREAD_ATTACH:
  54. case DLL_THREAD_DETACH:
  55. default:
  56. break;
  57. } // end switch()
  58. return TRUE;
  59. } // end DllEntryPoint()
  60. BOOL SnmpExtensionInit(
  61. IN DWORD timeZeroReference,
  62. OUT HANDLE *hPollForTrapEvent,
  63. OUT AsnObjectIdentifier *supportedView)
  64. {
  65. // record time reference from extendible agent
  66. timeZero = timeZeroReference;
  67. // setup trap notification
  68. *hPollForTrapEvent = NULL;
  69. // tell extendible agent what view this extension agent supports
  70. *supportedView = MIB_OidPrefix; // NOTE! structure copy
  71. // Initialize MIB access hash table
  72. MIB_HashInit();
  73. return TRUE;
  74. } // end SnmpExtensionInit()
  75. BOOL SnmpExtensionTrap(
  76. OUT AsnObjectIdentifier *enterprise,
  77. OUT AsnInteger *genericTrap,
  78. OUT AsnInteger *specificTrap,
  79. OUT AsnTimeticks *timeStamp,
  80. OUT RFC1157VarBindList *variableBindings)
  81. {
  82. return FALSE;
  83. } // end SnmpExtensionTrap()
  84. // This function is implemented in file RESOLVE.C
  85. #if 0
  86. BOOL SnmpExtensionQuery(
  87. IN BYTE requestType,
  88. IN OUT RFC1157VarBindList *variableBindings,
  89. OUT AsnInteger *errorStatus,
  90. OUT AsnInteger *errorIndex)
  91. {
  92. } // end SnmpExtensionQuery()
  93. #endif
  94. VOID SnmpExtensionClose()
  95. {
  96. UINT i;
  97. for (i=0; i < MAX_CACHE_ENTRIES ; ++i)
  98. {
  99. switch (i)
  100. {
  101. case C_PRNT_TABLE:
  102. FreePrintQTable();
  103. break;
  104. case C_SESS_TABLE:
  105. FreeSessTable();
  106. break;
  107. case C_SHAR_TABLE:
  108. FreeShareTable();
  109. break;
  110. case C_SRVC_TABLE:
  111. FreeSrvcTable();
  112. break;
  113. case C_SRVR_TABLE:
  114. FreeDomServerTable();
  115. break;
  116. case C_USER_TABLE:
  117. FreeUserTable();
  118. break;
  119. case C_USES_TABLE:
  120. FreeWkstaUsesTable();
  121. break;
  122. case C_ODOM_TABLE:
  123. FreeDomOtherDomainTable();
  124. break;
  125. default:
  126. if (cache_table[i].bufptr)
  127. {
  128. NetApiBufferFree(cache_table[i].bufptr);
  129. }
  130. cache_table[i].acquisition_time = 0;
  131. cache_table[i].entriesread = 0;
  132. cache_table[i].totalentries = 0;
  133. break;
  134. }
  135. }
  136. }
  137. //-------------------------------- END --------------------------------------