NetPlus WinSNMP Developer Kit August 8, 1998
Current version of ACE*COMM's wsnmp32.dll:
String value: v2.32.19980808
Binary value: 2.0.0.25
Change log:
v2.32.19980808: No external changes...function error
reporting mechanisms normalized across
all internal modules.
v2.32.19980705: Fixed an internal error return test that
would have caused the SnmpCreateVbl()
function to encounter an access violatoin
when passed a varbind with the (obsolete)
SNMP_SYNTAX_BITS syntax value.
v2.32.19980622: Improved some internal error checking.
Improved timeout interval handling for
intervals larger than 429,496,729 centiseconds.
v2.32.19980608: Fixed some flawed logic concerning freeing
entities which are acting as agents.
Repaired a memory leak in the implementation
of the RFC 2089 automatic SNMPv2 to SNMPv1
trap mapping algorithm.
v2.32.19980522: Modified SnmpContextToStr() code to return the
"raw" context value if the function is called
in SNMPAPI_TRANSLATED mode and the subject
hContext had been created in SNMPAPI_UNTRANSLATED
(v1 or v2) mode.
v2.32.19980507: Fixed a problem which caused some trap sending
apps to fail if they issued multiple consecutive
traps to a given HSNMP_ENTITY value. Added
error return (SNMPAPI_TL_OTHER) to SnmpSendMsg()
when WinSock sendto() fails for any reason.
v2.32.19980424: Internal integrity improvements in low-level
parsing routines...accept case when IPX header
indicates packet length greater than actual
SNMP message length.
v2.32.19980416: Fixed a problem in the interface with the
SNMPTRAP service that prevented non-admin users
from accessing the service. See the explanatory
note in a separate section later in this file for
more details. Also, made some (minor) reliability
and performance improvements to SNMPTRAP itself
(its version is now 4.0.1381.4).
v2.32.19980402: Fixed a problem that caused a comm failure on Win95
systems *only* when using WinSock v2 ws2_32.dll) with
*both* TCP/IP *and* IPX protocols installed.
v2.32.19980330: Fixed a failure in SnmpCreateSession() to return
SNMPAPI_HWND_INVALID when called in SnmpOpen() mode
(i.e., fCallBack is NULL) and the hWnd parameter
failed the Win32 IsWindow() check.
v2.32.19980323: Made improvements to session notification dispatching
algorithm for improved performance and reliability
specifically related to using callback notification
mode in multi-threaded/multi-session applications.
v2.32.19980318: Fixed SnmpOidToStr() to return the correct byte count
upon successful completion...previously it was not
counting the terminating NULL byte of the output
string as required by the WinSNMP spec...most apps
tested only for the SNMPAPI_FAILURE case, so there
were no field reports of this discrepancy. Also,
added the SNMPAPI_NOOP extended error code return
to cover the case of a NULL scrOID input parameter.
Again, there had been no field reports of this
deficiency.
v2.32.19980309: Fixed a bug and made a modest performance improvement
in SnmpCancelMsg().
v2.32.19980216: "Fix" added to enable SNMP request/response messages
over IPX for Win95. Required adding an otherwise
ill-advised bind() call.
v2.32.19980113: Improvements to internal message buffer management
scheme (to optimize for early release of resources
used for out-going messages that will not receive
a response (ie., traps and response PDUs).
Simplification of the housekeeping timer thread.
Rationalization of the method of invoking a
session's callback function that prevents multiple
instances of the callback being invoked concurrently.
v2.32.19971222: Improvements to internal message memory allocation
scheme (to handle large numbers of outstanding messages
more efficiently).
v2.32.19971216: Improvements to worker thread termination logic.
------------------------------------------------------------------------
Additional WinSNMP-related files may be freely obtained from the file
download site, www.winsnmp.com.
------------------------------------------------------------------------
If you develop WinSNMP management applications or agents and would like
to participate in a co-marketing program with ACE*COMM, please contact
Ben Gray, bgray@acecomm.com.
------------------------------------------------------------------------
If you are new to WinSNMP development, please read the following
documents before proceeding, in the following order:
- winsnmp2.txt
- winsnmp.doc
The first is the WinSNMP v2.0 Addendum. It clarifies certain aspects
of WinSNMP that were ambiguous in the previous version (v1.1a, defined
in winsnmp.doc) of the API and it describes the five new functions
added for v2.0.
This version of ACE*COMM's NetPlus WinSNMP implementation for Win32
fully implements WinSNMP v2.0 and incorporates many architectural and
performance improvements over earlier releases. It is designed to work
identically over NT (3.51 through 5) and Win95, with a single difference
in runtime files for received trap dispatching for NT (SNMPTRAP.EXE) vs
Win95 (NP_WSX95.EXE).
Current users please note:
This wsnmp32.dll does not require the np_wsx32.exe "helper" app of
previous versions...instead you will need either snmptrap.exe (for NT)
or np_wsx95.exe (for Win95). For clarity's sake, you should remove any
np_wsx32.exe from a machine running this version of wsnmp32.dll--or at
least move it to a directory off the execution path. Nothing bad happens
if you don't, except some wasted disk space and an increased possibility
for confusion.
------------------------------------------------------------------------
SNMPTRAP Info (NT only):
This snmptrap.exe is a plug-replacement for the one MS ships (it will
eventually *be* the one that MS ships). It is functionally identical
(with some minor performance improvements), but does not have any
internal dependencies on either the wsnmp32.dll or the mgmtapi.dll,
although it services both.
Our wsnmp32.dll will create and install the service on the first call
to SnmpRegister() if it finds that the sevice has not been previously
installed. The Win32 CreateService() API requires that the caller
have admin priviledges.
One we have created and installed the service, our wsnmp32.dll will
auto-start it if it's not already running when the first app successfully
calls SnmpRegister().
[If you are installing our runtime files by hand--rather than via the
Developer Kit automated install/setup package--then you must copy
snmptrap.exe to "%SystemRoot%\system32\". If you did not previously
have the SNMPTRAP service installed, then we will auto-install it,
per above. If you already had the original MS version installed, then
you should use an admin tool (such as sc.exe from the MS Resource Kit)
to remove/delete it.
If you are using the automated InstallShield procedure, then it will
perform as much of the above as it can for you; but depending upon
system security settings for any pre-existing SNMPTRAP installation,
you may still have to perform the service remove/delete operation.
------------------------------------------------------------------------
Win95 users please note:
The snmptrap.exe does not apply and you do not need to have it on your
system. Instead, however, you must have np_wsx95.exe accessible for
auto-loading/termination by wsnmp32.dll (in response to SnmpRegister()
calls).
------------------------------------------------------------------------
You will note that the winsnmp.def does not contain any exports for
proprietary functions. If you previously used any of our pre-standard
implementations of:
- SnmpSetPort()
- SnmpListen()
- NPWSNMPSetV1TrapPduData()
you will need to at least re-link (for SnmpSetPort(), whose ordinal
changed) or re-build (SnmpListen() has slightly different calling
parameters in v2.0 than our pre-standard implementation and
NPWSNMPSetV1TrapPduData() no longer exists, since SNMPv1 trap PDU
generation is handled automatically by wsnmp32.dll).
Also, this version does not use any "shared" memory across processes.
Hence, there is no need to fiddle with the resource limits in the
[Startup] section of the np_wsnmp.ini file (in fact, that section can
be completely deleted from np_wsnmp.ini, if you want).
You will find information about our MIB compiler and the MIB access
routines in the underlying libraries in the NP_MIB++ directory.
You are free to use our MIB compiler technology in your own apps, but
please note that doing so will mean that you are using our proprietary
interfaces, rather than some industry-standard (which does not yet
exist anyway).
For information on HP's SNMP++ DLL and sample applications, please
refer to their web site at:
http://rosegarden.external.hp.com/snmp++
Please report any problems/questions with this release directly to
Bob Natale, bnatale@acecomm.com.