WINE ASPI support and my Polaroid SprintScan 35 Plus

Mark A. Haun markhaun at uiuc.edu
Thu Nov 22 10:37:04 CST 2001


gerard patel wrote:

> On Wed, 21 Nov 2001 22:32:56 -0600, "Mark A. Haun" <markhaun at uiuc.edu>
> wrote:
> 
> <snip aspi install>
> 
>>The popup error I get says "Windows support for SCSI was not found.  If 
>>using an Adaptec SCSI board with Windows 3.1, please install the EZ-SCSI 
>>software."  I have the plscsi16.ini file in place, but "stat" tells me 
>>it is not being accessed!  The DLL file called plscsi16.dll, which 
>>references that .ini file, *is* being loaded each time.  Again, this 
>>exact set of files works fine under the real Win3.1 on my dos partition.
> 
> If no Aspi Wine wizard is here to solve it, what you need
> is to help by providing a nice trace so that someone 
> knowledgeable in the Windows api can help. Run with
> -debugmsg +relay, redirect in a file with &>myfile.txt.


Ok, here is the relevant portion of the trace (comments below):

0807ba78:CallTo16(func=02f7:1a48,ds=02ff) ss:sp=01ef:2a78
      AX=0000 BX=0000 CX=0000 DX=0000 SI=0000 DI=02fe BP=2aa2 ES=02ff 
FS=0000
0807ba78:Call KERNEL.23: LOCKSEGMENT(0xffff) ret=02f7:1a81 ds=02ff
0807ba78:Ret  KERNEL.23: LOCKSEGMENT() retval=0x02ff ret=02f7:1a81 ds=02ff
0807ba78:Call KERNEL.3: GETVERSION() ret=02f7:1a86 ds=02ff
0807ba78:Ret  KERNEL.3: GETVERSION() retval=0x07005f03 ret=02f7:1a86 ds=02ff
0807ba78:Call KERNEL.102: DOS3CALL() ret=02f7:1a9b ds=02ff
      AX=305f BX=0000 CX=0000 DX=0700 SI=0000 DI=02fe ES=02ff EFL=00000202
0807ba78:Ret  KERNEL.102: DOS3CALL() retval=none ret=02f7:1a9b ds=02ff
      AX=0007 BX=00ff CX=0000 DX=0700 SI=0000 DI=02fe ES=02ff EFL=00000202
0807ba78:Call KERNEL.131: GETDOSENVIRONMENT() ret=02f7:1e4b ds=02ff
0807ba78:Ret  KERNEL.131: GETDOSENVIRONMENT() retval=0x009f0000 
ret=02f7:1e4b ds=02ff
0807ba78:Call KERNEL.15: GLOBALALLOC(0x2002,0x00001000) ret=02f7:2235 
ds=02ff
0807ba78:Ret  KERNEL.15: GLOBALALLOC() retval=0x02ee ret=02f7:2235 ds=02ff
0807ba78:Call KERNEL.18: GLOBALLOCK(0x02ee) ret=02f7:2247 ds=02ff
0807ba78:Ret  KERNEL.18: GLOBALLOCK() retval=0x02ef0000 ret=02f7:2247 
ds=02ff
0807ba78:Call KERNEL.20: GLOBALSIZE(0x02ef) ret=02f7:2259 ds=02ef
0807ba78:Ret  KERNEL.20: GLOBALSIZE() retval=0x00001000 ret=02f7:2259 
ds=02ef
0807ba78:RetFrom16() ss:sp=01ef:2a78
      AX=0001 BX=0cff CX=0000 DX=02f7 BP=2aa2 SP=2a78
0807ba78:CallTo16(func=02cf:4162,ds=02d7) ss:sp=01ef:2a78
      AX=0000 BX=0000 CX=0800 DX=0000 SI=0000 DI=02d6 BP=2aa2 ES=02d7 
FS=0000
0807ba78:Call KERNEL.4: LOCALINIT(0x02d7,0x0000,0x0800) ret=02cf:418e 
ds=02d7
0807ba78:Ret  KERNEL.4: LOCALINIT() retval=0x0001 ret=02cf:418e ds=02d7
0807ba78:Call KERNEL.23: LOCKSEGMENT(0xffff) ret=02cf:419b ds=02d7
0807ba78:Ret  KERNEL.23: LOCKSEGMENT() retval=0x02d7 ret=02cf:419b ds=02d7
0807ba78:Call KERNEL.3: GETVERSION() ret=02cf:41a0 ds=02d7
0807ba78:Ret  KERNEL.3: GETVERSION() retval=0x07005f03 ret=02cf:41a0 ds=02d7
0807ba78:Call KERNEL.102: DOS3CALL() ret=02cf:41b5 ds=02d7
      AX=305f BX=0000 CX=0001 DX=0700 SI=0000 DI=02d6 ES=02d7 EFL=00000202
0807ba78:Ret  KERNEL.102: DOS3CALL() retval=none ret=02cf:41b5 ds=02d7
      AX=0007 BX=00ff CX=0000 DX=0700 SI=0000 DI=02d6 ES=02d7 EFL=00000202
0807ba78:Call WIN87EM.1: _FPMATH() ret=02cf:423b ds=02d7
      AX=0000 BX=0000 CX=030f DX=0000 SI=0000 DI=02d6 ES=02d7 EFL=00000246
0807ba78:Ret  WIN87EM.1: _FPMATH() retval=none ret=02cf:423b ds=02d7
      AX=0000 BX=0000 CX=030f DX=0000 SI=0000 DI=02d6 ES=02d7 EFL=00000246
0807ba78:Call KERNEL.131: GETDOSENVIRONMENT() ret=02cf:45a5 ds=02d7
0807ba78:Ret  KERNEL.131: GETDOSENVIRONMENT() retval=0x009f0000 
ret=02cf:45a5 ds=02d7
0807ba78:Call KERNEL.15: GLOBALALLOC(0x2002,0x00001000) ret=02cf:5aab 
ds=02d7
0807ba78:Ret  KERNEL.15: GLOBALALLOC() retval=0x02c6 ret=02cf:5aab ds=02d7
0807ba78:Call KERNEL.18: GLOBALLOCK(0x02c6) ret=02cf:5abd ds=02d7
0807ba78:Ret  KERNEL.18: GLOBALLOCK() retval=0x02c70000 ret=02cf:5abd 
ds=02d7
0807ba78:Call KERNEL.20: GLOBALSIZE(0x02c7) ret=02cf:5acf ds=02c7
0807ba78:Ret  KERNEL.20: GLOBALSIZE() retval=0x00001000 ret=02cf:5acf 
ds=02c7
0807ba78:Call KERNEL.24: UNLOCKSEGMENT(0xffff) ret=02cf:2055 ds=02d7
0807ba78:Ret  KERNEL.24: UNLOCKSEGMENT() retval=0xd1b0 ret=02cf:2055 ds=02d7
0807ba78:RetFrom16() ss:sp=01ef:2a78
      AX=0001 BX=2042 CX=0000 DX=02cf BP=2aa2 SP=2a78
0807ba78:CallTo16(func=0297:0054,ds=02af) ss:sp=01ef:2a78
      AX=0000 BX=0000 CX=1000 DX=0000 SI=0000 DI=02ae BP=2aa2 ES=02af 
FS=0000
0807ba78:Call KERNEL.4: LOCALINIT(0x02af,0x0000,0x1000) ret=0297:0080 
ds=02af
0807ba78:Ret  KERNEL.4: LOCALINIT() retval=0x0001 ret=0297:0080 ds=02af
0807ba78:Call KERNEL.23: LOCKSEGMENT(0xffff) ret=0297:008d ds=02af
0807ba78:Ret  KERNEL.23: LOCKSEGMENT() retval=0x02af ret=0297:008d ds=02af
0807ba78:Call KERNEL.3: GETVERSION() ret=0297:0092 ds=02af
0807ba78:Ret  KERNEL.3: GETVERSION() retval=0x07005f03 ret=0297:0092 ds=02af
0807ba78:Call KERNEL.102: DOS3CALL() ret=0297:00a7 ds=02af
      AX=305f BX=0000 CX=0001 DX=0700 SI=0000 DI=02ae ES=02af EFL=00000202
0807ba78:Ret  KERNEL.102: DOS3CALL() retval=none ret=0297:00a7 ds=02af
      AX=0007 BX=00ff CX=0000 DX=0700 SI=0000 DI=02ae ES=02af EFL=00000202
0807ba78:Call WIN87EM.1: _FPMATH() ret=0297:012d ds=02af
      AX=0000 BX=0000 CX=030f DX=0000 SI=0000 DI=02ae ES=02af EFL=00000246
0807ba78:Ret  WIN87EM.1: _FPMATH() retval=none ret=0297:012d ds=02af
      AX=0000 BX=0000 CX=030f DX=0000 SI=0000 DI=02ae ES=02af EFL=00000246
0807ba78:Call KERNEL.131: GETDOSENVIRONMENT() ret=0297:09ab ds=02af
0807ba78:Ret  KERNEL.131: GETDOSENVIRONMENT() retval=0x009f0000 
ret=0297:09ab ds=02af
0807ba78:Call KERNEL.15: GLOBALALLOC(0x2002,0x00001000) ret=0297:273b 
ds=02af
0807ba78:Ret  KERNEL.15: GLOBALALLOC() retval=0x028e ret=0297:273b ds=02af
0807ba78:Call KERNEL.18: GLOBALLOCK(0x028e) ret=0297:274d ds=02af
0807ba78:Ret  KERNEL.18: GLOBALLOCK() retval=0x028f0000 ret=0297:274d 
ds=02af
0807ba78:Call KERNEL.20: GLOBALSIZE(0x028f) ret=0297:275f ds=028f
0807ba78:Ret  KERNEL.20: GLOBALSIZE() retval=0x00001000 ret=0297:275f 
ds=028f
0807ba78:Call KERNEL.24: UNLOCKSEGMENT(0x02af) ret=029f:a772 ds=02af
0807ba78:Ret  KERNEL.24: UNLOCKSEGMENT() retval=0xd1b0 ret=029f:a772 ds=02af
0807ba78:Call KERNEL.49: GETMODULEFILENAME(0x02ae,01ef:28b2,0x0100) 
ret=029f:3fba ds=02af
0807ba78:Ret  KERNEL.49: GETMODULEFILENAME() retval=0x0023 ret=029f:3fba 
ds=02af0807ba78:Call KERNEL.89: LSTRCAT(01ef:28b2 
"C:\\WINDOWS\\TWAIN\\CS2700",0x02af05bf "\\rs270016.dll") ret=029f:3e1b 
ds=02af
0807ba78:Ret  KERNEL.89: LSTRCAT() retval=0x01ef28b2 ret=029f:3e1b ds=02af
0807ba78:Call KERNEL.74: OPENFILE(0x01ef28b2 
"C:\\WINDOWS\\TWAIN\\CS2700\\rs270016.dll",01ef:29b2,0x4000) 
ret=029f:3e34 ds=02af
0807ba78:Ret  KERNEL.74: OPENFILE() retval=0xffff ret=029f:3e34 ds=02af
0807ba78:Call USER.176: LOADSTRING(0x02ae,0x2530,02af:62dc,0x0022) 
ret=029f:a7ed ds=02af
0807ba78:Ret  USER.176: LOADSTRING() retval=0x0008 ret=029f:a7ed ds=02af
0807ba78:Call USER.176: LOADSTRING(0x02ae,0x2531,02af:62fe,0x0022) 
ret=029f:a7ff ds=02af
0807ba78:Ret  USER.176: LOADSTRING() retval=0x0007 ret=029f:a7ff ds=02af

0807ba78:Call USER.176: LOADSTRING(0x02ae,0x2532,02af:6320,0x0022) 
ret=029f:a811 ds=02af
0807ba78:Ret  USER.176: LOADSTRING() retval=0x0016 ret=029f:a811 ds=02af
0807ba78:Call USER.176: LOADSTRING(0x02ae,0x2534,02af:62b2,0x0022) 
ret=029f:a823 ds=02af
0807ba78:Ret  USER.176: LOADSTRING() retval=0x0003 ret=029f:a823 ds=02af
0807ba78:RetFrom16() ss:sp=01ef:2a78
      AX=0001 BX=62aa CX=0007 DX=0000 BP=2aa2 SP=2a78
0807ba78:Call kernel32.LoadLibraryA(40bd497e "comdlg32.dll") ret=40b9e63b
0807ba78:Ret  kernel32.LoadLibraryA() retval=40b8e000 ret=40b9e63b
0807ba78:Ret  KERNEL.95: LOADLIBRARY() retval=0x02ae ret=01e7:0a18 ds=01ef
0807ba78:Call KERNEL.50: GETPROCADDRESS(0x02ae,0x01ef00de "DS_Entry") 
ret=01e7:0a2f ds=01ef
0807ba78:Ret  KERNEL.50: GETPROCADDRESS() retval=0x029fa8c4 
ret=01e7:0a2f ds=01ef
0807ba78:Call KERNEL.88: LSTRCPY(0x01ef0318,0x01ef00e8 "1.0") 
ret=01e7:0a87 ds=01ef
0807ba78:Ret  KERNEL.88: LSTRCPY() retval=0x01ef0318 ret=01e7:0a87 ds=01ef
0807ba78:Call KERNEL.88: LSTRCPY(0x01ef0342,0x01ef00ec "Polaroid") 
ret=01e7:0a94 ds=01ef
0807ba78:Ret  KERNEL.88: LSTRCPY() retval=0x01ef0342 ret=01e7:0a94 ds=01ef
0807ba78:Call KERNEL.88: LSTRCPY(0x01ef0364,0x01ef00f6 "FrontEnd") 
ret=01e7:0aa1 ds=01ef
0807ba78:Ret  KERNEL.88: LSTRCPY() retval=0x01ef0364 ret=01e7:0aa1 ds=01ef
0807ba78:Call KERNEL.88: LSTRCPY(0x01ef0386,0x01ef0100 "DirectScan") 
ret=01e7:0aae ds=01ef
0807ba78:Ret  KERNEL.88: LSTRCPY() retval=0x01ef0386 ret=01e7:0aae ds=01ef
0807ba78:Call USER.430: LSTRCMP(0x01ef0364 "FrontEnd",0x02af0c3c 
"FrontEnd") ret=029f:a9d3 ds=02af
0807ba78:Ret  USER.430: LSTRCMP() retval=0x0000 ret=029f:a9d3 ds=02af
0807ba78:Call USER.430: LSTRCMP(0x02af63be "DirectScan",0x02af0c12 
"TWAIN Interface Driver") ret=029f:a5b6 ds=02af
0807ba78:Ret  USER.430: LSTRCMP() retval=0xfff0 ret=029f:a5b6 ds=02af

0807ba78:Call USER.176: LOADSTRING(0x02ae,0x0070,01ef:2984,0x0050) 
ret=0297:e258 ds=02af
0807ba78:Ret  USER.176: LOADSTRING() retval=0x0015 ret=0297:e258 ds=02af
0807ba78:Call USER.50: FINDWINDOW(0x00000000 (null),0x01ef2984 
"SprintScan 35 Preview") ret=029f:38b1 ds=02af
0807ba78:CallTo16(func=01e7:0938,ds=01ef,0x0021,0x000d,0x0016,0x0097,0x00d0) 
ss:sp=01ef:294a
      AX=01ee BX=0000 CX=0000 DX=0000 SI=0000 DI=0000 BP=2974 ES=01ef 
FS=0000
0807ba78:Call USER.107: DEFWINDOWPROC(0x0021,0x000d,0x0016,0x009700d0) 
ret=01e7:0973 ds=01ef
0807ba78:Ret  USER.107: DEFWINDOWPROC() retval=0x0000000a ret=01e7:0973 
ds=01ef
0807ba78:RetFrom16() ss:sp=01ef:294a
      AX=000a BX=0000 CX=0000 DX=0000 BP=2974 SP=294a
0807ba78:Ret  USER.50: FINDWINDOW() retval=0x0000 ret=029f:38b1 ds=02af
0807ba78:Call USER.176: LOADSTRING(0x02ae,0x0071,01ef:2984,0x0050) 
ret=0297:e258 ds=02af
0807ba78:Ret  USER.176: LOADSTRING() retval=0x001a ret=0297:e258 ds=02af
0807ba78:Call USER.50: FINDWINDOW(0x00000000 (null),0x01ef2984 
"SprintScan 35 Plus Preview") ret=029f:38e3 ds=02af
0807ba78:CallTo16(func=01e7:0938,ds=01ef,0x0021,0x000d,0x001b,0x0097,0x00d0) 
ss:sp=01ef:294a
      AX=01ee BX=0000 CX=0000 DX=0000 SI=0000 DI=0000 BP=2974 ES=01ef 
FS=0000
0807ba78:Call USER.107: DEFWINDOWPROC(0x0021,0x000d,0x001b,0x009700d0) 
ret=01e7:0973 ds=01ef
0807ba78:Ret  USER.107: DEFWINDOWPROC() retval=0x0000000a ret=01e7:0973 
ds=01ef
0807ba78:RetFrom16() ss:sp=01ef:294a
      AX=000a BX=0000 CX=0000 DX=0000 BP=2974 SP=294a
0807ba78:Ret  USER.50: FINDWINDOW() retval=0x00000807ba78:Call USER.472: 
ANSINEXT(0x01ef29fd) ret=029f:7388 ds=02af
0807ba78:Ret  USER.472: ANSINEXT() retval=0x01ef29fe ret=029f:7388 ds=02af
0807ba78:Call USER.472: ANSINEXT(0x01ef29fe) ret=029f:7388 ds=02af
0807ba78:Ret  USER.472: ANSINEXT() retval=0x01ef29ff ret=029f:7388 ds=02af
0807ba78:Call USER.176: LOADSTRING(0x02ae,0x0072,01ef:2998,0x0020) 
ret=0297:e12a ds=02af
0807ba78:Ret  USER.176: LOADSTRING() retval=0x0004 ret=0297:e12a ds=02af
0807ba78:Call USER.420: _WSPRINTF() ret=0297:e16d ds=02af
0807ba78:Ret  USER.420: _WSPRINTF() retval=0x0020 ret=0297:e16d ds=02af
0807ba78:Call KERNEL.74: OPENFILE(0x01ef29dc 
"C:\\WINDOWS\\TWAIN\\CS2700\\35mm.ini",01ef:2902,0x4000) ret=029f:746c 
ds=02af
0807ba78:Ret  KERNEL.74: OPENFILE() retval=0x0005 ret=029f:746c ds=02af
0807ba78:Call KERNEL.127: GETPRIVATEPROFILEINT(0x02af0403 
"SCSI",0x02af03fa "deviceID",0x0001,0x01ef29dc 
"C:\\WINDOWS\\TWAIN\\CS2700\\35mm.ini") ret=029f:37dc ds=02af
0807ba78:Ret  KERNEL.127: GETPRIVATEPROFILEINT() retval=0x0004 
ret=029f:37dc ds=02af
0807ba78:Call KERNEL.127: GETPRIVATEPROFILEINT(0x02af0412 
"SCSI",0x02af0408 "adapterID",0x0000,0x01ef29dc 
"C:\\WINDOWS\\TWAIN\\CS2700\\35mm.ini") ret=029f:37f5 ds=02af
0807ba78:Ret  KERNEL.127: GETPRIVATEPROFILEINT() retval=0x0000 
ret=029f:37f5 ds=02af
0807ba78:Call KERNEL.127: GETPRIVATEPROFILEINT(0x02af041f 
"Preferences",0x02af0417 "debugOn",0x0000,0x01ef29dc 
"C:\\WINDOWS\\TWAIN\\CS2700\\35mm.ini") ret=029f:3810 ds=02af
0807ba78:Ret  KERNEL.127: GETPRIVATEPROFILEINT() retval=0x0000 
ret=029f:3810 ds=02af
0807ba78:Call KERNEL.127: GETPRIVATEPROFILEINT(0x02af0434 
"Preferences",0x02af042b "scriptOn",0x0000,0x01ef29dc 
"C:\\WINDOWS\\TWAIN\\CS2700\\35mm.ini") ret=029f:3828 ds=02af
0807ba78:Ret  KERNEL.127: GETPRIVATEPROFILEINT() retval=0x0000 
r0807ba78:Ret  USER.176: LOADSTRING() retval=0x007d ret=0297:e258 ds=02af
0807ba78:Call USER.421: WVSPRINTF(02af:26b6,0x02af2846 "Windows support 
for SCSI was not found.\nIf using an Adaptec SCSI board with 
Wind"...,01ef:29da) ret=029f:10a9 ds=02af
0807ba78:Ret  USER.421: WVSPRINTF() retval=0x007d ret=029f:10a9 ds=02af
0807ba78:Call USER.176: LOADSTRING(0x02ae,0x03f0,02af:2846,0x0190) 
ret=0297:e258 ds=02af
0807ba78:Ret  USER.176: LOADSTRING() retval=0x0014 ret=0297:e258 ds=02af
0807ba78:Call USER.176: LOADSTRING(0x02ae,0x03f1,01ef:29aa,0x0028) 
ret=0297:e258 ds=02af
0807ba78:Ret  USER.176: LOADSTRING() retval=0x0005 ret=0297:e258 ds=02af
0807ba78:Call USER.420: _WSPRINTF() ret=029f:10e3 ds=02af
0807ba78:Ret  USER.420: _WSPRINTF() retval=0x001a ret=029f:10e3 ds=02af
0807ba78:Call USER.1: MESSAGEBOX(0x0000,0x02af26b6 "Windows support for 
SCSI was not found.\nIf using an Adaptec SCSI board with 
Wind"...,0x02af2846 "SprintScan 35 Driver Error",0x2010) ret=029f:1567 
ds=02af
et=029f:3828 ds=02af
0807ba78:Call USER.50: FINDWINDOW(0x02d70058 "ResMem64",0x00000000 
(null)) ret=02cf:2b43 ds=02d7
0807ba78:Ret  USER.50: FINDWINDOW() retval=0x0000 ret=02cf:2b43 ds=02d7
0807ba78:Call KERNEL.132: GETWINFLAGS() ret=02f7:13f0 ds=02ff
0807ba78:Ret  KERNEL.132: GETWINFLAGS() retval=0x00002c29 ret=02f7:13f0 
ds=02ff
0807ba78:Call KERNEL.3: GETVERSION() ret=02f7:1411 ds=02ff
0807ba78:Ret  KERNEL.3: GETVERSION() retval=0x07005f03 ret=02f7:1411 ds=02ff
0807ba78:Call KERNEL.74: OPENFILE(0x02ff0020 
"WINASPI.DLL",01ef:28ce,0x4000) ret=02f7:07b5 ds=02ff
0807ba78:Ret  KERNEL.74: OPENFILE() retval=0xffff ret=02f7:07b5 ds=02ff
0807ba78:Call USER.176: LOADSTRING(0x02ae,0x2719,02af:2846,0x0190) 
ret=0297:e258 ds=02af
  ret=029f:38e3 ds=02af
0807ba78:Call KERNEL.49: GETMODULEFILENAME(0x02ae,01ef:29dc,0x0100) 
ret=0297:e0ae ds=02af
0807ba78:Ret  KERNEL.49: GETMODULEFILENAME() retval=0x0023 ret=0297:e0ae 
ds=02af0807ba78:Call USER.472: ANSINEXT(0x01ef29dc) ret=029f:7388 ds=02af
0807ba78:Ret  USER.472: ANSINEXT() retval=0x01ef29dd ret=029f:7388 ds=02af
0807ba78:Call USER.472: ANSINEXT(0x01ef29dd) ret=029f:7388 ds=02af
0807ba78:Ret  USER.472: ANSINEXT() retval=0x01ef29de ret=029f:7388 ds=02af
0807ba78:Call USER.472: ANSINEXT(0x01ef29de) ret=029f:7388 ds=02af
0807ba78:Ret  USER.472: ANSINEXT() retval=0x01ef29df ret=029f:7388 ds=02af

---

No matter what I try in the DLLOverrides config, it cannot find
WINASPI.DLL.  It appears as if Wine's SCSI support isn't kicking in at
all.  libwnaspi32.so isn't being accessed.  There are no startup
messages, even with --debugmsg +all, to indicate that it is detecting my
SCSI generic device at all.  And yet /proc/scsi/scsi shows what it
should, I have a /dev/sg1 special file, and ~/.wine/config contains

[scsi c0t4d0]
"Device" = "/dev/sg1"

BTW, I am running the 20011108 wine, built from source on my Debian
potato (kernel 2.2.19, glibc 2.1) system.  My SCSI card is an ASUS
(Symbios chipset) and works great except for wine.

Mark
markhaun at uiuc.edu




More information about the wine-users mailing list