https://learn.microsoft.com/en-us/windows-hardware/drivers/d...
This includes intercepting the raw XPS data being sent to the printer and modifying it.
It looks like these things are lightly sandboxed, but that’s not enough. These apps get access to extremely sensitive data, and they should be very sandboxed. IMO it should have input access to the document and printer settings, output access to what gets printed, and that’s it. No network, no storage, no Windows API, etc. Think wasm-style sandboxing.
But I don’t think MS thinks like this.
Printer manufacturers also don't think like this. They desperately want to know what you are printing, order overpriced ink for you, sell additional services like print-by-mail, etc. All that won't work without lots of permissions for the printer support apps.
If it just were about the conversion path (print job, settings) -> (printer data stream), a PDL, filter program and a sandbox would be totally sufficient and nobody would ever need a "printer support app". If a printer needs such an app, it is already using too many privileges anyways, printer support apps should never be needed actually.
Edit: typo.
at this point, what are they gonna do? Not provide windows drivers?
Fine. That runs in a separate sandbox with access to the printer and the ability to display a UI. No other privileges.
> Printer manufacturers also don't think like this.
This is irrelevant. The whole article is about MS forcing a certain model on printer manufacturers.
Source code available.
[1] https://blog.nektra.com/2015/10/20/instrumenting-the-windows...
The Centronics port is nominally one-way, but it didn't take long for people to realize you could use it for bidirectional communication, thanks to a self-test feature IBM built into the original PC's parallel port adapter, which everybody copied faithfully.
The most famous use was probably "LapLink" which enabled fast file transfer via a special cable.
Printers and their matching drivers used the bidirectional communication to provide mode detailed status information than the single "Paper Out" signal.
And the rest as they say, is a parade of horribles
The most ‘fun’ of these was when Microsoft marketing came up with the “Plug and Play” (https://en.wikipedia.org/wiki/Legacy_Plug_and_Play), and the engineers had to implement it for this port.
So, you have a port designed so that writing anything to it prints a character, but you somehow have to figure out what (if anything) is attached to it without making a printer attached to it print anything, a CD Writer to write, a hard disk to lock up, etc, with each device possibly having its own devious way of doing two-way communication over that port (by the time Windows 95 came out, how to do that was more or less settled, but users still had tons of old hardware and/or older parallel ports that behaved slightly differently)
If not for the time pressure to ship something, I think it must have been fun to work in the Microsoft department developing that feature with hundreds of obscure parallel port devices.
And of course, it never worked perfectly. How could it? I know people who had a device that erroneously got detected as a tape drive, making ¿Windows NT 4? pop up some dialog for attaching it.
I know a large bank who had a well paid dev on the payroll who's job was exclusively reverse engineering, patching and writing windows printer drivers so their old specialized institutional printers could keep working on modern Windows because the printer manufacturer would not publish newer drivers.
Printing is still a very important part of many wealthy legacy industries which explains why there's so much fuss around it.
>Q: Will Windows prevent installation of new printer drivers?
>A: Windows will continue to allow vendor-supplied printer drivers to be installed via separate installation packages.
My sincere kudos to them, Apple/Google/FOSS would have thrown out the old with no regard.
However this is going to break a lot of existing applications. The printer manufacturers have been laggards when it comes to adopting v4 drivers which date back to Vista.
When done right, you don’t need new printers.
They usually have a ton of driver specific settings, etc. for tuning the output. How will these settings be managed without drivers specific to them?
All this requires some interaction with the user. IPP Everywhere covers a lot but I'm guessing there will be some niche requirements that it misses.
[0] https://en.wikipedia.org/wiki/Internet_Printing_Protocol
I saw that a Motorola g play smartphone with MT6765 and 3gb of ram is <$70.
But sometimes that's not quite enough, the world of hardware is complex. Not every printer is your office Letter sized paper spewing box.
Otherwise you can always decrypt/unlock a PDF using open source software.
I guess Windows/Android have something similar.
The key point here is that Microsoft will refuse to WHQL-sign or publish third-party printer drivers from 2027 onwards.
Third-party drivers, without WHQL-signing, will continue to be installable past 2027 on the provided timeline if the manufacturer provides them.
It is only for resource-constrained machines of the early-1990s that printer-drivers needed any kind of kernel-level access to a system; with IPP and modern USB stacks no-longer needing any kind of kernel module, I'm not seeing how this should be a problem for anyone except domestic spy agencies losing the ability to suppeptiously intercept every printed document.
"The HP forums say it’s not possible, but it’s actually pretty easy to do. [...] Windows will try to install it and it will look like it’s installed but it wont actually work. You’ll be able to see it in the device manager as an “unspecified device”, but you wont be able to print."
[0]https://www.davemroz.com/installing-hp-laserjet-1012-windows...
Any printer you've used in Haiku with IPP has worked in Windows with IPP since Windows 2000.
Do you dual-boot Linux or Windows at all?
I'm guessing you put up with one of them (or something made by Apple) at work...?
This Is windows network BTW
Probably, if the router's firmware supports the feature. Usually you'll be able to use AppSocket/JetDirect <https://www.cups.org/doc/network.html>, so the printer's address would be `socket://router/`.
Printing through the router is not guaranteed to work, though. I have one 4x6 USB label printer that does not work correctly this way with my Asus router, while other USB printers do. That same printer does print correctly when using a Raspberry Pi running CUPS.
They would need an internal NAT driver via USB.. windows could then pick it up as a networked printer. But windows won't go try detect your printer plugged into the router..
If I understood your question correctly.
That would be kinda cool or am I misunderstanding something?
An actual good printer would have enough compute (Raspberry Pi would be sufficient) and storage (a small ssd) to handle the task by itself. Then printing is nothing more than copying a file to the printer.
I don't think they want to. They are forced into it by the razor thin margins on cheap hardware. It's a race to the bottom.
So that's why printing in Win 10 is a mess, with no standard print dialogue and no print preview.
I have two old photo printers that work quite well and replacing them would be extremely expensive. The driver among other things contains features to match up color profiles.
I have label printers that are old that also work well.
All rely on custom printer drivers.
I hope this new system is going to be phased in over a long timeframe, so I can keep using old printers. Even if writing software to integrate these printers with the new system no printer manufacturer is going to revisit 10 - 15-year-old printeres with a new set of drivers.
It seems they won't move forward unless they are forced to. It's about time.
Other things they mention are just a function of having access to the source code (CUPS drivers are mostly open source), and not letting people install DLLs with elevated privilege over the the printer network port (as far as I know, this was never a thing that cups supported). They mention XPS (isn't that dead yet? Is it more secure than PDF/A, or PS?) and Mopria (not sure what this is, but the specifications page on their webpage only mentions things that are obvious security holes: piping your print spool through the cloud, and having the device advertise using Bluetooth Low Energy)
Anyway, CUPS has none of the problems mentioned in the article from what I can see. (Except that it might be common practice to misconfigure it with transport security disabled).
Sorry Linux.
Printers are mostly networked in today's world. And the OS usually isn't involved when an application wants to talk to another device on the network beyond TCP connections etc.
Just get the application to (using a library), connect directly to the printer, submit its job, show status, and disconnect when done.
I never connect printers directly to the network because their firmware/OS are all flaming pieces of garbage with terrible UIs and conventions. In my house, all network printers are connected to the home server (running Windows Server) and it's the home server that actually deals with presenting the printers to the network.
The time and nerves I've saved by having an actual, proper operating system handle the networking is immeasurable.