otya128 / winevdm

16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error: stub function gdi.exe16 SpoolFile

rvertex opened this issue · comments

Describe the bug

Trying to print a page from a custom 16-bit Windows app, works fine in Windows 10 32bit with NTVDM on, but on Windows 10 64bit with otvdm latest stable I get the following error;

image

1670:Ret KERNEL.102: DOS3CALL() retval=none ret=15bf:15b8 ds=121f
AX=0000 BX=0005 CX=0000 DX=0000 SI=3344 DI=ffd2 ES=1ce7 EFL=00003246
1670:Call KERNEL.102: DOS3CALL() ret=15bf:165e ds=121f
AX=3f04 BX=0005 CX=000a DX=69a0 SI=3344 DI=121f ES=1ce7 EFL=00003246
1670:trace:int21:DOSVM_Int21Handler AX=3f04 BX=0005 CX=000a DX=69a0 SI=3344 DI=121f DS=121f ES=1ce7 EFL=00003246
1670:trace:int21:DOSVM_Int21Handler READ from 5 to 121F:69A0 for 10 bytes
1670:trace:int21:DOSVM_Int21Handler returning: AX=000a BX=0005 CX=000a DX=69a0 SI=3344 DI=121f DS=121f ES=1ce7 EFL=00003246
1670:Ret KERNEL.102: DOS3CALL() retval=none ret=15bf:165e ds=121f
AX=000a BX=0005 CX=000a DX=69a0 SI=3344 DI=121f ES=1ce7 EFL=00003246
1670:Call KERNEL.102: DOS3CALL() ret=15bf:166d ds=121f
AX=3ea0 BX=0005 CX=0001 DX=18ff SI=3344 DI=698a ES=1ce7 EFL=00003246
1670:trace:int21:DOSVM_Int21Handler AX=3ea0 BX=0005 CX=0001 DX=18ff SI=3344 DI=698a DS=121f ES=1ce7 EFL=00003246
1670:trace:int21:DOSVM_Int21Handler CLOSE handle 5
1670:trace:int21:DOSVM_Int21Handler returning: AX=3ea0 BX=0005 CX=0001 DX=18ff SI=3344 DI=698a DS=121f ES=1ce7 EFL=00003246
1670:Ret KERNEL.102: DOS3CALL() retval=none ret=15bf:166d ds=121f
AX=3ea0 BX=0005 CX=0001 DX=18ff SI=3344 DI=698a ES=1ce7 EFL=00003246
1670:Call KERNEL.21: GLOBALHANDLE(1ce7) ret=15df:007a ds=121f
1670:Ret KERNEL.21: GLOBALHANDLE() retval=1ce71ce6 ret=15df:007a ds=121f
1670:Call KERNEL.16: GLOBALREALLOC(1ce6,00003342,0002) ret=15df:00cd ds=121f
1670:Ret KERNEL.16: GLOBALREALLOC() retval=034d1ce6 ret=15df:00cd ds=121f
1670:Call KERNEL.20: GLOBALSIZE(1ce6) ret=15df:00fc ds=121f
1670:Ret KERNEL.20: GLOBALSIZE() retval=00003360 ret=15df:00fc ds=121f
1670:Call KERNEL.47: GETMODULEHANDLE(121f:6920 "GDI") ret=14f7:007c ds=121f
1670:Ret KERNEL.47: GETMODULEHANDLE() retval=175710f7 ret=14f7:007c ds=121f
1670:Call KERNEL.95: LOADLIBRARY(121f6920 "GDI.") ret=14f7:00a4 ds=121f
1670:Ret KERNEL.95: LOADLIBRARY() retval=00001107 ret=14f7:00a4 ds=121f
1670:Call KERNEL.47: GETMODULEHANDLE(121f:6920 "GDI") ret=14f7:00c0 ds=121f
1670:Ret KERNEL.47: GETMODULEHANDLE() retval=175710f7 ret=14f7:00c0 ds=121f
1670:Call KERNEL.50: GETPROCADDRESS(10f7,121f6920 "SpoolFile") ret=14f7:00fc ds=121f
1670:Ret KERNEL.50: GETPROCADDRESS() retval=10ff45a2 ret=14f7:00fc ds=121f
1670:Call GDI.254: SPOOLFILE() ret=14ef:648b ds=121f
stub function gdi.exe16 SpoolFile

Expected behavior

Application sends print data via LPT2 to network printer.

Screenshots
Can't add screenshots due to licence

Environment (please complete the following information):

  • OS: Windows 10 64 Bit
  • Version 22H2 Build 19045.4170

Additional context

Trying to print a page from a custom 16-bit Windows app, works fine in Windows 10 32bit with NTVDM on, but on Windows 10 64bit with otvdm latest stable I get the following error;

1670:Ret KERNEL.102: DOS3CALL() retval=none ret=15bf:15b8 ds=121f
AX=0000 BX=0005 CX=0000 DX=0000 SI=3344 DI=ffd2 ES=1ce7 EFL=00003246
1670:Call KERNEL.102: DOS3CALL() ret=15bf:165e ds=121f
AX=3f04 BX=0005 CX=000a DX=69a0 SI=3344 DI=121f ES=1ce7 EFL=00003246
1670:trace:int21:DOSVM_Int21Handler AX=3f04 BX=0005 CX=000a DX=69a0 SI=3344 DI=121f DS=121f ES=1ce7 EFL=00003246
1670:trace:int21:DOSVM_Int21Handler READ from 5 to 121F:69A0 for 10 bytes
1670:trace:int21:DOSVM_Int21Handler returning: AX=000a BX=0005 CX=000a DX=69a0 SI=3344 DI=121f DS=121f ES=1ce7 EFL=00003246
1670:Ret KERNEL.102: DOS3CALL() retval=none ret=15bf:165e ds=121f
AX=000a BX=0005 CX=000a DX=69a0 SI=3344 DI=121f ES=1ce7 EFL=00003246
1670:Call KERNEL.102: DOS3CALL() ret=15bf:166d ds=121f
AX=3ea0 BX=0005 CX=0001 DX=18ff SI=3344 DI=698a ES=1ce7 EFL=00003246
1670:trace:int21:DOSVM_Int21Handler AX=3ea0 BX=0005 CX=0001 DX=18ff SI=3344 DI=698a DS=121f ES=1ce7 EFL=00003246
1670:trace:int21:DOSVM_Int21Handler CLOSE handle 5
1670:trace:int21:DOSVM_Int21Handler returning: AX=3ea0 BX=0005 CX=0001 DX=18ff SI=3344 DI=698a DS=121f ES=1ce7 EFL=00003246
1670:Ret KERNEL.102: DOS3CALL() retval=none ret=15bf:166d ds=121f
AX=3ea0 BX=0005 CX=0001 DX=18ff SI=3344 DI=698a ES=1ce7 EFL=00003246
1670:Call KERNEL.21: GLOBALHANDLE(1ce7) ret=15df:007a ds=121f
1670:Ret KERNEL.21: GLOBALHANDLE() retval=1ce71ce6 ret=15df:007a ds=121f
1670:Call KERNEL.16: GLOBALREALLOC(1ce6,00003342,0002) ret=15df:00cd ds=121f
1670:Ret KERNEL.16: GLOBALREALLOC() retval=034d1ce6 ret=15df:00cd ds=121f
1670:Call KERNEL.20: GLOBALSIZE(1ce6) ret=15df:00fc ds=121f
1670:Ret KERNEL.20: GLOBALSIZE() retval=00003360 ret=15df:00fc ds=121f
1670:Call KERNEL.47: GETMODULEHANDLE(121f:6920 "GDI") ret=14f7:007c ds=121f
1670:Ret KERNEL.47: GETMODULEHANDLE() retval=175710f7 ret=14f7:007c ds=121f
1670:Call KERNEL.95: LOADLIBRARY(121f6920 "GDI.") ret=14f7:00a4 ds=121f
1670:Ret KERNEL.95: LOADLIBRARY() retval=00001107 ret=14f7:00a4 ds=121f
1670:Call KERNEL.47: GETMODULEHANDLE(121f:6920 "GDI") ret=14f7:00c0 ds=121f
1670:Ret KERNEL.47: GETMODULEHANDLE() retval=175710f7 ret=14f7:00c0 ds=121f
1670:Call KERNEL.50: GETPROCADDRESS(10f7,121f6920 "SpoolFile") ret=14f7:00fc ds=121f
1670:Ret KERNEL.50: GETPROCADDRESS() retval=10ff45a2 ret=14f7:00fc ds=121f
1670:Call GDI.254: SPOOLFILE() ret=14ef:648b ds=121f
stub function gdi.exe16 SpoolFile

#1405 might fix this but I have no program which uses this api so can't actually test it.

Thank you very much Crayc, I was able to print via LPT2 using the patch you applied #1405