home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / VRAC / SNMPKT.ZIP / TESTMIB.H < prev    next >
C/C++ Source or Header  |  1993-04-13  |  3KB  |  135 lines

  1. /*++ BUILD Version: 0001    // Increment this if a change has global effects
  2.  
  3. Copyright (c) 1991  Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     testmib.h
  8.  
  9. Abstract:
  10.  
  11.     Sample SNMP Extension Agent for Windows NT.
  12.  
  13.     These files (testdll.c, testmib.c, and testmib.h) provide an example of 
  14.     how to structure an Extension Agent DLL which works in conjunction with 
  15.     the SNMP Extendible Agent for Windows NT.
  16.  
  17.     Extensive comments have been included to describe its structure and
  18.     operation.  See also "Microsoft Windows/NT SNMP Programmer's Reference".
  19.  
  20. Created:
  21.  
  22.     13-Jun-1991
  23.  
  24. Revision History:
  25.  
  26. --*/
  27.  
  28. #ifndef testmib_h
  29. #define testmib_h
  30.  
  31.  
  32.  
  33. // Necessary includes.
  34.  
  35. #include <snmp.h>
  36.  
  37.  
  38. // MIB Specifics.
  39.  
  40. #define MIB_PREFIX_LEN            MIB_OidPrefix.idLength
  41. #define MAX_STRING_LEN            255
  42.  
  43.  
  44. // Ranges and limits for specific MIB variables.
  45.  
  46. #define MIB_TOASTER_UP            1
  47. #define MIB_TOASTER_DOWN          2
  48.  
  49. #define MIB_TOASTER_LIGHTLYWARM   1
  50. #define MIB_TOASTER_BURNT         10
  51.  
  52. #define MIB_TOASTER_WHITEBREAD    1
  53. #define MIB_TOASTER_OTHERBREAD    7
  54.  
  55.  
  56. // MIB function actions.
  57.  
  58. #define MIB_ACTION_GET         ASN_RFC1157_GETREQUEST
  59. #define MIB_ACTION_SET         ASN_RFC1157_SETREQUEST
  60. #define MIB_ACTION_GETNEXT     ASN_RFC1157_GETNEXTREQUEST
  61.  
  62.  
  63. // MIB Variable access privileges.
  64.  
  65. #define MIB_ACCESS_READ        0
  66. #define MIB_ACCESS_WRITE       1
  67. #define MIB_ACCESS_READWRITE   2
  68.  
  69.  
  70. // Macro to determine number of sub-oid's in array.
  71.  
  72. #define OID_SIZEOF( Oid )      ( sizeof Oid / sizeof(UINT) )
  73.  
  74.  
  75. // MIB variable ENTRY definition.  This structure defines the format for
  76. // each entry in the MIB.
  77.  
  78. typedef struct mib_entry
  79.            {
  80.        AsnObjectIdentifier Oid;
  81.        void *              Storage;
  82.        BYTE                Type;
  83.        UINT                Access;
  84.        UINT                (*MibFunc)( UINT, struct mib_entry *,
  85.                                        RFC1157VarBind * );
  86.        struct mib_entry *  MibNext;
  87.        } MIB_ENTRY;
  88.  
  89.  
  90. // Internal MIB structure.
  91.  
  92. extern MIB_ENTRY Mib[];
  93. extern UINT      MIB_num_variables;
  94.  
  95.  
  96. // Prefix to every variable in the MIB.
  97.  
  98. extern AsnObjectIdentifier MIB_OidPrefix;
  99.  
  100.  
  101. // Function Prototypes.
  102.  
  103. UINT ResolveVarBind(
  104.         IN OUT RFC1157VarBind *VarBind, // Variable Binding to resolve
  105.     IN UINT PduAction               // Action specified in PDU
  106.     );
  107.  
  108. UINT MIB_leaf_func(
  109.         IN UINT Action,
  110.     IN MIB_ENTRY *MibPtr,
  111.     IN RFC1157VarBind *VarBind
  112.     );
  113.  
  114. UINT MIB_control_func(
  115.         IN UINT Action,
  116.     IN MIB_ENTRY *MibPtr,
  117.     IN RFC1157VarBind *VarBind
  118.     );
  119.  
  120. UINT MIB_doneness_func(
  121.         IN UINT Action,
  122.     IN MIB_ENTRY *MibPtr,
  123.     IN RFC1157VarBind *VarBind
  124.     );
  125.  
  126. UINT MIB_toasttype_func(
  127.         IN UINT Action,
  128.     IN MIB_ENTRY *MibPtr,
  129.     IN RFC1157VarBind *VarBind
  130.     );
  131.  
  132.  
  133. #endif /* testmib_h */
  134.  
  135.