[Bug 21987] Acrobat 7 tryout installer complains: "This Postscript Driver or Windows Platform (Win9x/Me) not supported" (winspool.drv missing level 8/global default printer settings handling)
WineHQ Bugzilla
wine-bugs at winehq.org
Fri Jan 1 10:37:58 CST 2021
https://bugs.winehq.org/show_bug.cgi?id=21987
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
Component|-unknown |spooler
Fixed by SHA1|c9fdc565e5753bf363943b2b1c8 |7508a5d4b2d5246ea9c19afd734
|8486334b00576 |274d12ca4b5bc
URL|http://ardownload.adobe.com |https://web.archive.org/web
|/pub/adobe/acrobat/win/7x/7 |/20061114115407/http://ardo
|.0/misc/AcTR7EFG.exe |wnload.adobe.com/pub/adobe/
| |acrobat/win/7x/7.0/misc/AcT
| |R7EFG.exe
--- Comment #19 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
the level 8/2 handling was implemented a while ago.
*
https://source.winehq.org/git/wine.git/commit/c9fdc565e5753bf363943b2b1c88486334b00576
("winspool.drv: Support printer info level 8.")
*
https://source.winehq.org/git/wine.git/commitdiff/7508a5d4b2d5246ea9c19afd734274d12ca4b5bc
("winspool: Implement SetPrinterW for level 2.").
Part of Wine 1.5.10 release.
Thanks André
Although the error message is still the same, the current problem is much
deeper into print system architecture/implementation. I already touched it
briefly in comment #9.
Adobe PDF Port/Printer driver installation is taking place in
'CreateAdobePDFPrinter' custom action:
--- snip ---
$ WINEDEBUG=+seh,+relay,+msi,+winspool,+reg wine ./setup.exe >>log.txt 2>&1
...
01b0:trace:msi:ACTION_CustomAction Handling custom action
L"CreateAdobePDFPrinter" (c41 L"AdobeIsf" L"SetupAdobePDFPrinter")
...
01b0:trace:msi:HANDLE_CustomType1 Calling function L"SetupAdobePDFPrinter" from
L"C:\\users\\focht\\Temp\\msi48b7.tmp"
...
02f8:Ret PE DLL (proc=0160618A,module=01600000
L"msi48b7.tmp",reason=PROCESS_ATTACH,res=00000000) retval=1
...
02f8:Ret KERNEL32.LoadLibraryW() retval=01600000 ret=100210f6
02f8:Call KERNEL32.GetProcAddress(01600000,0016df28 "SetupAdobePDFPrinter")
ret=1002110a
02f8:Ret KERNEL32.GetProcAddress() retval=01602bea ret=1002110a
...
02f8:Call winspool.drv.AddPrinterDriverA(00000000,00000003,015edbbc)
ret=01601d03
02f8:trace:winspool:AddPrinterDriverA ((null), 3, 0x15edbbc)
02f8:trace:winspool:AddPrinterDriverExA ((null), 3, 0x15edbbc, 0x8)
02f8:Call KERNEL32.MultiByteToWideChar(00000000,00000000,015eeae5 "Adobe PDF
Converter",ffffffff,00000000,00000000) ret=7c6dd853
02f8:Ret KERNEL32.MultiByteToWideChar() retval=00000014 ret=7c6dd853
...
02f8:Call advapi32.RegCreateKeyW(80000002,0018e3c0
L"System\\CurrentControlSet\\control\\Print\\Environments\\Windows NT
x86\\Drivers\\Version-3",015ece84) ret=01616005
...
02f8:Call KERNEL32.LoadLibraryW(015ece84
L"C:\\windows\\system32\\spool\\drivers\\w32x86\\3\\Ps5ui.dll") ret=0161667f
...
02f8:Ret KERNEL32.LoadLibraryW() retval=00000000 ret=0161667f
02f8:Call KERNEL32.GetProcAddress(00000000,0161b9f0 "DrvDriverEvent")
ret=016166eb
02f8:Ret KERNEL32.GetProcAddress() retval=00000000 ret=016166eb
...
02f8:trace:winspool:AddPrinterDriverExA got 1 with 6
...
02f8:trace:winspool:AddPrinterDriverExA => 1 with 6
02f8:Ret winspool.drv.AddPrinterDriverA() retval=00000001 ret=01601d03
...
02f8:Call
winspool.drv.EnumPrintersA(00000002,00000000,00000002,017b7d98,00001000,015edb70,015edb74)
ret=01601e7f
02f8:trace:winspool:EnumPrintersA (0x2, (null), 2, 0x17b7d98, 4096, 0x15edb70,
0x15edb74)
...
02f8:Call advapi32.RegCreateKeyW(80000002,7c6e7360
L"System\\CurrentControlSet\\Control\\Print\\Printers",015ed860) ret=7c6d1a89
...
02f8:trace:winspool:WINSPOOL_EnumPrintersW Found 0 printers
...
02f8:trace:winspool:convert_printerinfo_W_to_A (0x17b7d98, 0x194ae0, 2, 0, 0)
...
02f8:Ret winspool.drv.EnumPrintersA() retval=00000001 ret=01601e7f
...
02f8:Call winspool.drv.AddPrinterA(00000000,00000002,015edb8c) ret=01601e3a
02f8:trace:winspool:AddPrinterA ((null), 2, 0x15edb8c)
02f8:Call ntdll.RtlAllocateHeap(00110000,00000000,00000054) ret=7c6ced8b
02f8:Ret ntdll.RtlAllocateHeap() retval=0017fec8 ret=7c6ced8b
02f8:Call ntdll.RtlCreateUnicodeStringFromAsciiz(015edad8,015edc14 "Adobe PDF")
ret=7c6cee3e
02f8:Ret ntdll.RtlCreateUnicodeStringFromAsciiz() retval=0017db01 ret=7c6cee3e
02f8:Call ntdll.RtlCreateUnicodeStringFromAsciiz(015edad8,015eebe5 "My
Documents\\*.pdf") ret=7c6cee7e
02f8:Ret ntdll.RtlCreateUnicodeStringFromAsciiz() retval=00177301 ret=7c6cee7e
02f8:Call ntdll.RtlCreateUnicodeStringFromAsciiz(015edad8,015eeae5 "Adobe PDF
Converter") ret=7c6cee9e
02f8:Ret ntdll.RtlCreateUnicodeStringFromAsciiz() retval=0017ff01 ret=7c6cee9e
02f8:Call ntdll.RtlCreateUnicodeStringFromAsciiz(015edad8,017b7958 "")
ret=7c6ceebe
02f8:Ret ntdll.RtlCreateUnicodeStringFromAsciiz() retval=0018ba01 ret=7c6ceebe
02f8:Call ntdll.RtlCreateUnicodeStringFromAsciiz(015edad8,017b7a68 "My
Documents") ret=7c6ceede
02f8:Ret ntdll.RtlCreateUnicodeStringFromAsciiz() retval=0016df01 ret=7c6ceede
02f8:Call ntdll.RtlCreateUnicodeStringFromAsciiz(015edad8,015ee764 "WinPrint")
ret=7c6cef34
02f8:Ret ntdll.RtlCreateUnicodeStringFromAsciiz() retval=00182901 ret=7c6cef34
02f8:Call ntdll.RtlCreateUnicodeStringFromAsciiz(015edad8,015ee744 "RAW")
ret=7c6cef54
02f8:Ret ntdll.RtlCreateUnicodeStringFromAsciiz() retval=00182901 ret=7c6cef54
02f8:trace:winspool:AddPrinterW ((null),2,0x17fec8)
...
02f8:trace:winspool:WINSPOOL_OpenDriverReg ((null))
02f8:trace:winspool:validate_envW testing (null)
...
02f8:Call advapi32.RegCreateKeyW(000000ec,0017dba0 L"Adobe PDF",015edab0)
ret=7c6dca9d
...
02f8:trace:winspool:set_devices_and_printerports (0x17fec8) L"Adobe PDF"
...
02f8:trace:winspool:set_devices_and_printerports using L"wineps.drv,My
Documents\\*.pdf"
...
02f8:trace:winspool:DocumentPropertiesW ((nil),(nil),L"Adobe
PDF",(nil),(nil),0)
02f8:trace:winspool:DocumentPropertiesA ((nil),(nil),Adobe PDF,(nil),(nil),0)
...
02f8:trace:winspool:WINSPOOL_GetDevModeFromReg corrupted registry for L"Default
DevMode" ( size 0)
...
02f8:Call
winspool.drv.GetPrinterDriverW(00000001,00000000,00000002,00000000,00000000,015ecf60)
ret=01cca826
02f8:trace:winspool:GetPrinterDriverW (0x1,(null),2,(nil),0,0x15ecf60)
02f8:trace:winspool:validate_envW testing (null)
...
--- snip ---
--- snip ---
01611E15 | or dword ptr ss:[ebp-28],4
01611E19 | cmp word ptr ds:[edi],bx
01611E1C | jne msi7163.1611E27
01611E1E | cmp dword ptr ds:[edi+C],esi
01611E21 | jne msi7163.1611E27
01611E23 | or byte ptr ss:[ebp-27],4
01611E27 | push esi
01611E28 | call dword ptr ds:[<&_RtlSetLastWin32Error at 4>]
01611E2E | lea eax,dword ptr ss:[ebp-5C]
01611E31 | push eax ; pDriverInfo
01611E32 | push 2 ; level
01611E34 | push esi ; ""
01611E35 | call msi7163.1615F64 ; winspool.drv.AddPrinterA
01611E3A | mov ecx,dword ptr ss:[ebp+8]
01611E3D | pop edi
01611E3E | mov dword ptr ds:[ecx+A5C],eax
01611E44 | xor ecx,ecx
01611E46 | cmp eax,esi
01611E48 | pop esi
01611E49 | setne cl
01611E4C | mov eax,ecx
01611E4E | pop ebx
01611E4F | leave
01611E50 | ret 4
--- snip ---
'pDriverInfo'
--- snip ---
015EDBF4 00000000 ....
015EDBF8 015EDC7C |Ü^. ; "Adobe PDF"
015EDBFC 00000000 .... ; pShareName
015EDC00 015EEC4D Mì^. ; pPortName = "My Documents\\*.pdf"
015EDC04 015EEB4D Më^. ; pDriverName = "Adobe PDF Converter"
015EDC08 018C7958 Xy.. ; pComment = ""
015EDC0C 018C7A68 hz.. ; pLocation = "My Documents"
015EDC10 00000000 .... ; pDevMode = NULL
015EDC14 00000000 .... ; pSepFile = NULL
015EDC18 015EE7CC Ìç^. ; pPrintProcessor = "WinPrint"
015EDC1C 015EE7AC ^. ; pDatatype = "RAW"
015EDC20 00000000 ....
015EDC24 00000000 ....
015EDC28 00000004 .... ; Attributes
015EDC2C 00000000 ....
015EDC30 00000000 ....
015EDC34 00000000 ....
015EDC38 00000000 ....
015EDC3C 00000000 ....
015EDC40 00000000 ....
015EDC44 00000000 ....
--- snip ---
The private devmode registry data gets added somewhere along the printer driver
installation. I don't think it makes sense to continue here, recycling the
ticket again.
You could create a follow-up ticket. But there is a caveat: Adobe Acrobat 7.x
PDF printer driver installation doesn't even work on modern Windows versions
(Vista+) as documented in Adobe KB/Community forums:
https://community.adobe.com/t5/acrobat-sdk/warning-20225-adobe-acrobat7-0-was-unable-to-create-a-new-item-adobe-pdf-port-printer-the-adobe-pdf/td-p/8576733
===
Tidbit: While researching Windows print system architecture I rediscovered:
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rprn/d42db7d5-f141-4466-8f47-0a4be14e2fc1
https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-RPRN/%5bMS-RPRN%5d.pdf
("[MS-RPRN]: Print System Remote Protocol")
Related:
https://source.winehq.org/git/wine.git/blob/784cb2060ab63076adc349dcb1d15a6cb5eb2bc4:/dlls/winspool.drv/wspool.c#l59
--- snip ---
59
/******************************************************************************
60 * load_backend [internal]
61 *
62 * load and init our backend (the local printprovider: "localspl.dll")
63 *
64 * PARAMS
65 *
66 * RETURNS
67 * Success: TRUE
68 * Failure: FALSE and RPC_S_SERVER_UNAVAILABLE
69 *
70 * NOTES
71 * In windows, winspool.drv use RPC to interact with the spooler service
72 * (spoolsv.exe with spoolss.dll) and the spooler router (spoolss.dll)
interact
73 * with the correct printprovider (localspl.dll for the local system)
74 *
75 */
--- snip ---
I imagine this could be a candidate for a Google Summer of Code (GSoC) topic.
===
$ sha1sum AcTR7EFG.exe
4f1ff389ea71f21d624083d65bbe5a74e4760079 AcTR7EFG.exe
$ du -sh AcTR7EFG.exe
116M AcTR7EFG.exe
$ wine --version
wine-6.0-rc4
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list