|
Details of Queue Configuration Changes
|
bet | 41/43 | Sana | 21.03.2017 | Hajmi | 486,5 Kb. | | #828 |
Details of Queue Configuration Changes
As part of its initialization, WLNOTIFY.DLL registers to the Spooler service to get notification of any changes that might be made to the redirected printer queues it adds for the client.
1. When a user changes printer properties (configuration information such as paper orientation, tray information, or renaming the printer) for a given printer queue, the above registered notification gets triggered. The notification includes the printer name.
2. WLNOTIFY.DLL looks at the notification and checks its internal list of printer queues to see if the printer queue really belongs to it. If WLNOTIFY.DLL cannot find the printer name, it then checks whether this is a new manual printer (see Manual Printer Queues).
3. If the printer queue belongs to the session, a call is made into PRINTUI.DLL to get configuration details of the queue.
4. PRINTUI.DLL calls into Spooler to fetch the configuration information.
5-6-7. WLNOTIFY.DLL reads the configuration information passed to it from PRINTUI.DLL/Spooler as a blob of binary data and creates a configuration update message. This message contains the configuration binary data.
8. The update (or rename if the printer is renamed) message is then sent to the client by an IOCTL to the KERNEL-mode RDPDR.SYS.
9. The TS client-side RDPDR component receives the update and uses the device ID to obtain the printer to which the message applies. The client does not try to interpret it, but simply stores it in the registry, under the following registry key:
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\AddIns\RDPDR.SYS\<printer queue name> \AutoPrinterCacheData
During the next server connection, when announcing the same automatic printer, the client reads this information from the registry and includes this blob of binary in the announce data.
To improve server performance, notifications are batched and sent to the client. Therefore, it typically takes 30 seconds to 1 minute for the configuration to be saved on the client side.
|
| |