ID:               28493
 User updated by:  sanondysie at tc17 dot com
 Reported By:      sanondysie at tc17 dot com
 Status:           Open
 Bug Type:         Dynamic loading
 Operating System: Windows 98
 PHP Version:      4.3.6
 New Comment:

Further research especially with a tool a little better suited
to the task available at http://www.dependencywalker.com/
clarifies the problem. The issue appears to be with two
calls in php_imap.dll:
 EncryptMessage
 DecryptMessage
that are imported from SECUR32.DLL.
Presumably these functions are exported
from SECUR32.DLL on WinNT platforms but not
on Win98.

A check of these versions of SECUR32.DLL
revealed that none of them export the required
functions:

SECUR32.DLL DateTime: 29-Apr-1998  FileVersion: 4.10.1998               (original
distribution)
SECUR32.DLL DateTime: 27-Mar-1999  FileVersion: 4.10.2177               (from some
upgrade)
SECUR32.DLL DateTime: 23-Apr-1999  FileVersion: 4.10.2222               (Win98SE)

I have not been able to check WinME version(s).

Appropriate patching of php_imap.dll's import table
to eliminate the problem references produces an image
that loads properly and provides imap function on
my Win98 systems. One hopes a better solution can be
provided.


Previous Comments:
------------------------------------------------------------------------

[2004-05-22 18:58:12] sanondysie at tc17 dot com

Description:
------------
This problem seems to present itself only on Win98 systems
(possibly on other Win9x as well). I have tested this on
an almost-out-of-the-box Win98 system as well a Win98 system
with all the latest MS patches including MSIE 6.0 SP1; symptoms
are identical. Systems ARE able to use the curl extension;
systems ARE able to use the gd2 extension. Systems are
NOT able to use the IMAP extension. There are many Usenet
messages about this problem as well; there doesn't seem to be
any solution that has been shown to work.

Symptoms can be demonstrated by either:
 1) configure imap with php.ini, or
 2) <?php dl ("php_imap.dll"); ?>
The error message returned is something like:
  Unable to load dynamic library ...php_imap.dll
  - A device attached to the system is not functioning.

A little bit more analysis with \windows\system\regsvr32 gives:
  LoadLibrary ...php_imap.dll failed
  GetLastError returns 0x0000001f.
The 0x1f (31) error maps to "device attached to the system is not
functioning"
is apparently a catch-all for errors for which the original
programmers
could not be bothered supplying details. However, this is NOT the
error
shown for missing DLLs (that's a 0x4xx error);

Analysis with scanbin (available from: http://www.bellamyjc.net/)
seems to show that there are two presumed problems with calls:
KERNEL32: LoadLibrarya
KERNEL32: GetProcAddress

The conclusion seems to be that the problem is inherent in
php_imap.dll itself, possibly the way in which is is built;
possibly some subtle API interface problem (with KERNEL32),
a difference between Win9x and WinNT kernels?





------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=28493&edit=1

Reply via email to