I am new to NLM programming. What I...
Articles and Tips: qna
01 Mar 2002
Q.
I am new to NLM programming. What I try to do is tap the NDS generated login events. So I download and compile the dsevents source code from the Novell support site using the Watcom 11 open source compiler.
I got the NLM to load on to NetWare v5.1 and it seems to function normally. However, after I unload the NLM, and try to reload it again, the following messages appears on the console and the NLM refuses to load anymore.
SS:load sys:dsevents Loading module DSEVENTS.NLM dsevents.nlm
SERVER-5.00-918: Loader cannot find public symbol: NWDSEGetLocalEntryName for module DSEVENTS.NLM
SERVER-5.00-918: Loader cannot find public symbol: NWDSERegisterForEvent for module DSEVENTS.NLM
SERVER-5.00-918: Loader cannot find public symbol: NWDSEUnRegisterForEvent for module DSEVENTS.NLM
SERVER-5.00-1548: Load file referenced undefined public variable. Module DSEVENTS.NLM NOT loaded Loading module DSEVENTS.NLM dsevents.nlm
SERVER-5.00-918: Loader cannot find public symbol: NWDSEGetLocalEntryName for module DSEVENTS.NLM
SERVER-5.00-918: Loader cannot find public symbol: NWDSERegisterForEvent for module DSEVENTS.NLM
SERVER-5.00-918: Loader cannot find public symbol: NWDSEUnRegisterForEvent for module DSEVENTS.NLM
SERVER-5.00-1548: Load file referenced undefined public variable. Module DSEVENTS.NLM NOT loaded SS:
Any ideas as to what I have done wrong?
A.
This is a very interesting problem. Despite its complex look, it has a very simple explanation: your NLM does not autoload DSEVENT.NLM but uses symbols from it. DSEVENT is marked as AUTOLOADable in NetWare v5.0 and above. When your NLM unloads, so does DSEVENT behind the scenes. The solution is to add DSEVENT to the autoload list for your NLM or just load DSEVENT manually before loading your NLM the second time.
* Originally published in Novell AppNotes
Disclaimer
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.