[This is preliminary documentation and subject to change.]
The WinSNMP smiVALUE structure describes the value associated with a variable name in a variable binding entry.
The syntax member of the smiVALUE structure contains a WinSNMP data type that indicates the type of data in the value member. The value member of the structure is the union of all possible WinSNMP data types.
typedef struct { // smiVALUE portion of VarBind
smiUINT32 syntax; // Insert SNMP_SYNTAX_<type>
union {
smiINT sNumber; // SNMP_SYNTAX_INT
// SNMP_SYNTAX_INT32
smiUINT32 uNumber; // SNMP_SYNTAX_UINT32
// SNMP_SYNTAX_CNTR32
// SNMP_SYNTAX_GAUGE32
// SNMP_SYNTAX_TIMETICKS
smiCNTR64 hNumber; // SNMP_SYNTAX_CNTR64
smiOCTETS string; // SNMP_SYNTAX_OCTETS
// SNMP_SYNTAX_BITS
// SNMP_SYNTAX_OPAQUE
// SNMP_SYNTAX_IPADDR
// SNMP_SYNTAX_NSAPADDR
smiOID oid; // SNMP_SYNTAX_OID
smiBYTE empty; // SNMP_SYNTAX_NULL
// SNMP_SYNTAX_NOSUCHOBJECT
// SNMP_SYNTAX_NOSUCHINSTANCE
// SNMP_SYNTAX_ENDOFMIBVIEW
} value; // union
} smiVALUE, *smiLPVALUE;
Syntax data type | Meaning |
---|---|
SNMP_SYNTAX_INT | Indicates a 32-bit signed integer variable. |
SNMP_SYNTAX_BITS | Indicates a variable that is an enumeration of named bits with non-negative, contiguous values, starting at zero. |
SNMP_SYNTAX_OCTETS | Indicates an octet string variable that is binary or textual data. |
SNMP_SYNTAX_NULL | Indicates a NULL value. |
SNMP_SYNTAX_OID | Indicates an object identifier variable that is an assigned name with a maximum of 128 subidentifiers. |
SNMP_SYNTAX_INT32 | Indicates a 32-bit signed integer variable. |
SNMP_SYNTAX_IPADDR | Indicates a 32-bit Internet address variable. |
SNMP_SYNTAX_CNTR32 | Indicates a counter variable that increases until it reaches a maximum value of (2^32) – 1. |
SNMP_SYNTAX_GAUGE32 | Indicates a gauge variable that is a non-negative integer that can increase or decrease, but never exceed a maximum value. |
SNMP_SYNTAX_TIMETICKS | Indicates a counter variable that measures the time in hundredths of a second, until it reaches a maximum value of (2^32) – 1. It is a non-negative integer that is relative to a specific timer event. |
SNMP_SYNTAX_OPAQUE | This type provides backward compatibility, and should not be used for new object types. It supports the capability to pass arbitrary Abstract Syntax Notation One (ASN.1) syntax. |
SNMP_SYNTAX_CNTR64 | Indicates a counter variable that increases until it reaches a maximum value of (2^64) – 1. |
SNMP_SYNTAX_UINT32 | Indicates a 32-bit unsigned integer variable. |
SNMP_SYNTAX_NOSUCHOBJECT | Indicates that the agent does not support the object type that corresponds to the variable. |
SNMP_SYNTAX_NOSUCHINSTANCE | Indicates that the object instance does not exist for the operation. |
SNMP_SYNTAX_ENDOFMIBVIEW | Indicates the WinSNMP manager application is attempting to reference an object identifier that is beyond the end of the MIB tree that the agent supports. |
The last three syntax types describe exception conditions under the SNMP version 2C (SNMPv2C) framework.
A WinSNMP manager application must check the syntax member of an smiVALUE structure to correctly dereference the value member. The value member can contain a simple scalar value or a non-scalar value like an smiOCTETS or an smiOID descriptor structure.
If the syntax member indicates that the value member is an smiOCTETS or an smiOID descriptor structure, the WinSNMP manager application must determine whether to free the resources allocated for the structure. The Microsoft WinSNMP implementation allocates and deallocates memory for all output smiOCTETS and smiOID structures. The application must call the SnmpFreeDescriptor function to free the memory for the ptr member of these structures.
Because the WinSNMP manager application allocates memory for input descriptors with variable lengths, it must free that memory. For additional information, see WinSNMP Data Management Concepts.
Windows NT: Requires version 5.0 or later. Available as a redistributable for Windows NT 4.0.
Windows: Unsupported.
Windows CE: Unsupported.
Header: Declared in winsnmp.h.
WinSNMP Manager API Overview, WinSNMP Structures, smiOCTETS, smiOID, SnmpGetVb, SnmpCreateVbl, SnmpFreeDescriptor