[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference jamin::pathworks32

Title:Digital PATHWORKS 32
Moderator:SPELNK::curless
Created:Fri Nov 01 1996
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:337
Total number of notes:1612

146.0. "PWIOCB32.DLL breaks Reflection/NT" by COPHK::copslt.dmo.dec.com::Jesper () Wed Mar 05 1997 07:40


	Hi,

	Using NT 4.0/Intel and MS network, TCP/IP and Netbeui.
	Installed Reflection/NT, ver. 5.12, and works ok.
	Installed PW32, then Reflection stops working.

	I then removed PW32 by hand, where ever I could find any
	referrences to PW32, both harddisk and registry, then 
	Reflection starts work again.

	Then removed Reflection.
	Installed PW32.
	Installed Reflection.
	Reflection does'nt work.

	I then removed ALL Pathworks32 from controlpanel-network-......
	Reflection still dont work. I then moved all files starting
	with PW from c:\winnt40\system32 directory, then Reflection
	started to work. It showed up that copying PWIOCB32.DLL
	back to c:\winnt40\system32 broke Reflection.

	Why does PWIOCB32.DLL break Reflection ?


	Regards
	Jesper Lund
	
T.RTitleUserPersonal
Name
DateLines
146.1JAMIN::WASSERJohn A. WasserWed Mar 05 1997 10:4022
> Why does PWIOCB32.DLL break Reflection ?

(From one of the two QARs on this problem:)

Our investigation has so far shown that Reflection 4 is submitting an
I/O Control Block (IOCB) request with a null IOCB pointer.  We think it
is trying to determine if the Local Area Terminal (LAT) transport is
installed but uses the wrong function code.  This is filtering down to
the IOCB handler (DECIOCB) as a request with an invalid IOCB address.
Since DECIOCB is a kernel-mode driver, using this invalid address causes
a "Blue Screen" crash.

 We are working with Walker Richer and Quinn (WRQ)to determine the cause
of the problem and to implement a full solution.  The best we can do until
then is to prevent the blue-screen crash by having DECIOCB detect the null
IOCB pointer and treat the call as if it were an install check.  This
interim fix will be in the released version of DECIOCB.SYS.

Unfortunately the interim fix currently results in a GPF crash in
Reflection 4.  You should keep in mind that a full solution may require
changes in Reflection and possibly additional changes in one or more
PATHWORKS 32 components.
146.2COPHK::copvm5.dmo.dec.com::cop01::jesperWed Mar 05 1997 10:516

	Thanks for the excelent and detailed explanation.

	Regards
	Jesper
146.3interim fix???VMSNET::DMCFARLANDstill TurboMom[tm]...Fri May 23 1997 15:5725
    O.K.  I am gonna beat this dead horse again.  I have been reading
    the responses here and in note 308.
    
    A new customer is running Reflection 5.2 over TELNET, not LAT.
    Installing PW32 breaks this until he removes the PWIOCB.  Of course,
    PW32 does not work after PWIOCB is removed.
    
    My question for John...I am a bit confused by:
    
>    The best we can do until then is to prevent the blue-screen crash by
>    having DECIOCB detect the null IOCB pointer and treat the call as if it
>    were an install check.  This interim fix will be in the released
>    version of DECIOCB.SYS.
>
>    Unfortunately, the interim fix currently results in a GPF crash in
>    Reflection 4.  Keep in mind that a full solution may require changes in
>    the Reflection product and possibly additional changes in one or more
>    PATHWORKS 32 components
    
    If the interim fix still causes Reflection to crash, what kind of fix 
    is it?  Is this "interim fix" part of PW32 v7.0a patch?  Or is there
    something better?
    
    Diane
    
146.4SPELNK::curlessFri May 23 1997 16:197
The fix is... it doesn't KILL THE MACHINE, just the application that
violates the spec.

Just like any API will.

Jeff
146.5more questions...thanx for your patienceVMSNET::DMCFARLANDstill TurboMom[tm]...Fri May 23 1997 17:1922
    Jeff,
    
    Thank you.  Now, if I've got this straight, the interim fix still
    does not make the application (Reflection, in this case) work
    correctly with PW32.  Correct?  
    
    Re: the "spec being violated"...does this refer to what John said
    about "Reflection submitting an I/O Control Block (IOCB) request 
    with a null IOCB pointer... This is filtering down to
    the IOCB handler (DECIOCB) as a request with an invalid IOCB address.
    Since DECIOCB is a kernel-mode driver, using this invalid address
    causes a Blue Screen crash."???
    
    Are we working on something ourselves to make this work? Or is the
    onus still on WRQ?
    
    (Just curious about the "interim fix"--is this part of the SSB 7.0
    or included in 7.0a?)
    
    Diane
    (I know...I ask a lot of questions for someone from Alpharetta...)
    
146.6SPELNK::curlessFri May 23 1997 17:3817
The problem is still with WRQ.. they need to submit the IOCB call correctly,
or... their application will still crash. This is much like calling ANY
API incorrectly, the result can and usually will result in the application
crashing.

There is nothing we can do about the IOCB call (other than what we did, which
as to increase the validation on the parameters), except refuse those
calls that pass in what appears to be invalid parameters (a NULL in this
case).

Now, if they are not handling this properly, then the application will
crash (which it does).

We can do a lot, but we can't fix their bugs for them.

Jeff
146.7Using Telnet, not LAT???VMSNET::DMCFARLANDstill TurboMom[tm]...Tue May 27 1997 10:5514
    Jeff,
    
    Thank you for the clarification.  
    
    I still have one last (!!!) question, which I asked in note 314.
    If Reflection is running over Telnet (not LAT), should it be able
    to co-exist with PW32 licensing stuff on WNT?  Or does the IOCB
    issue still get in the way?  (Does the DECIOCB stuff still get
    installed/loaded if only PW32 licensing is installed without LAT
    or DECnet?)
    
    Diane
    
               
146.8SPELNK::curlessTue May 27 1997 11:004
It depends on WHO's telnet Reflection is running over.

Jeff
146.9VMSNET::DMCFARLANDstill TurboMom[tm]...Tue May 27 1997 11:166
    O.K.  The possibilities I see are WNT 4.0's Telnet or Reflection's
    Telnet...  How can we determine which is used?  And what is the
    difference?  Does one work and the other no...?
    
    Diane
    
146.10THOLIN::TBAKERThe Spirit of ApathyTue May 27 1997 11:304
    Rename all instances of PWTELNT.DLL from the machine to PWTELNT.BAK
    or something like it.

    Tom
146.11?VMSNET::DMCFARLANDstill TurboMom[tm]...Tue May 27 1997 12:048
    Tom,
    
    If we rename PWTELNT.DLL, then which Telnet will Reflection be
    using?  I am *assuming* Microsoft's (WNT 4.0)...or does Reflection
    have its own version?
    
    Diane
    
146.12THOLIN::TBAKERThe Spirit of ApathyTue May 27 1997 13:5913
    RE: .9

>    Telnet...  How can we determine which is used?  And what is the
>    difference?  Does one work and the other no...?

    You can determine which is used by renaming one of them or
    even deleting it.  This way you *know* that that one isn't
    being used.

    If the behavior changes after doing this then you can probably
    assume that a different TELNET is being accessed.
    
    Tom