Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: System caching print driver info...



Alec,

To answer your question, here is something I wrote recently to the printing list ...

A little bit of detail explaining how makequeues works, and the role of
the printer module cache ...

"makequeues -r" starts by removing all printer queues associated with
the USB IOM. Then it scans the bus for printers. For each printer it
builds a URI of the form

usb://<manufacturer>/<model>?serial=<serialnumber>

Next, makequeues scans the pmcache for an entry that matches the URI.
There are 2 instances of the PM cache, one is preinstalled with the
system

/System/Library/Frameworks/ApplicationServices.framework/Frameworks/
PrintCore.framework/Resources/com.apple.pmcache.xml

and the other is written to

~/Library/Preferences/ByHost/com.apple.print.PrintCenter.plist

by Print Center whenever the cache needs to be updated. Look at the
PM cache to see how we get a PM's name and version based on the
information in the printer URI.

Once a pmcache entry is selected, makequeues creates a printer queue in
the same way as Print Center does when the user clicks the Add button.

Why do we use a cache file instead of loading the USB PBM and calling
the PM, like Print Center does? The answer is performance. There is a
price to pay for this performance benefit. makequeues runs as root so
the queue is created with root's language preference. Also any queue
created by makequeues misses the icon that is normally provided by the
PM.

For developers, you should note that Print Center only adds new entries
to the pmcache (it never removes entries) and makequeues stops scanning
the cache as soon as it finds an entry with a matching manufacturer +
model. That means you need to change your bundle name and/or version
number if you want makequeues to find your latest installed PM.

The short answer is that you cannot prevent the printing system from caching information about your driver. But by changing your bundle name and/or version number, you can ensure that we use the right driver.

-Paul



On Tuesday, February 18, 2003, at 01:58 PM, Alec Carlson wrote:

The printing sub-system seems to be caching info about my printer driver.
Even if I delete my driver via the Print Center, this cached info hangs
around and affects the way my driver is called when I add it back. Anyone
have any idea where this cache is located and how I can completely remove my
driver and all associated info about it from the bowels of the OS ?

Thanks -

Alec Carlson
-----------------------------------------------------------------------
Time is Short and the Water Rises
-----------------------------------------------------------------------
_______________________________________________
printing mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/printing
Do not post admin requests to the list. They will be ignored.
_______________________________________________
printing mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/printing
Do not post admin requests to the list. They will be ignored.

References: 
 >System caching print driver info... (From: Alec Carlson <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.