none
v4 Driver Print Notification not appearing unless you restart spooler RRS feed

  • Question

  • I am trying to create a print notification for my v4 printer driver when the cyan ink goes below 95%.

    I did the following steps:
    1.) Create a TCP/IP Bidi Extension that gets the values for the Printer.Consumables BIDI query

    <?xml version="1.0" encoding="us-ascii"?>
    <bidi:Schema xmlns:bidi="http://schemas.microsoft.com/windows/2005/03/printing/bidi">
      <Property name="Printer">
        <Property name="Consumables">
          <IndexedProperty name="Item">
            <Value name="Level" type="BIDI_INT" oid="1.3.6.1.2.1.43.11.1.1.9" deviceIndex="true"/>
          </IndexedProperty>
        </Property>
      </Property>
    </bidi:Schema>

    2.) Create the Driver Event xml that will output the message 'Cyan' ink is low when Cyan ink goes below 95%

    <?xml version="1.0" encoding="utf-8"?>
    <en:DriverEvents xmlns:en="http://schemas.microsoft.com/windows/2011/08/printing/driverevents" schemaVersion="4.0">
      <DriverEvent eventId="{A04CF0FC-1CEB-4C62-B967-6F0AE5C5F81E}">
        <Transport>SNMP</Transport>
        <Query>\Printer.Consumables</Query>
        <Trigger result="\Printer.Consumables.Item001:Level" comparison="LessThan" value="95">
          <StandardMessage resourceId="132">
            <StringParameter index="1" resourceId="2000" />
          </StandardMessage>
        </Trigger>
      </DriverEvent>
    </en:DriverEvents>

    Currently, I am able to display the notification.
    However, this is only after the following:

    1.) Print using a printer with cyan ink below 95%
    2.) The default Windows printer notification 'Ink/Toner is low' appears
    3.) I stop the spooler from the command line using net stop spooler
    4.) I start the spooler from the command line
    5.) 'Cyan ink is low' message appears.

    Another weird thing is, the default message 'Ink/Toner' does not appear everytime I print even though the actual printer status is 'Ink level low'.

    It only appears after printing when the spooler has been restarted.

    I am expecting that the message ['Cyan' ink is low] will always appear everytime I click the print button until I replace the ink cartridge and that the message will appear even if the spooler is not restarted. 

    Does my expectation match the print notification specs?






    • Edited by Lisa Edkin Tuesday, December 18, 2012 11:43 PM
    Tuesday, December 18, 2012 9:42 AM

Answers

All replies

  • Hi Lisa,

    We have some logic which is intended to prevent the user from seeing excessive notifications if the state of the printer hasn't changed since the last spooler initialization. It sounds like this logic is coming into your scenario. Do you see the notification if the printer changes its ink level to another value which is below the notification threshold? This should cause a notification without the spooler restart.

    Thanks

    Justin

    Wednesday, December 26, 2012 7:52 PM
  • Hi Justin,

    Thanks for your reply.

    I am still encountering the problem. The driver event message (i.e. 'Cyan' ink is low) does not appear unless I restart the spooler. 

    I understand that user will not be able to see the notification if there is no change since the last initialization so i tried reducing the ink level.

    However, the notification still does not show up unless the spooler is restarted.

    Steps:

    1.) Restart spooler

    2.) Message will show up

    3.) Print after 1 hour; Message does not show up

    4.) Reduce ink level (i.e. from 94% to 93%)

    5.) Print; The message still does not show up (note: We expect to see the driver event message here)

    6.) Restart spooler after 5 minutes

    7.) Message shows up

    Is there any setting that caches previous ink levels?

    Tuesday, January 8, 2013 7:59 AM
  • Alfred,

    Due to the complexity of debugging problems with notifications, I have to ask that you contact Microsoft Support for more assistance. Without some level of interactive debugging, I can't say for sure what's happening.

    One idea I have is that SNMP doesn't have an eventing model, so we don't detect changes except when there is a polling interval hit or when the user adds a print job. You might tweak the refreshInterval to see if that changes things for you. This page describes how to do so.

    http://msdn.microsoft.com/en-us/library/windows/hardware/ff547327(v=vs.85).aspx

    Otherwise, the link below will put you in touch with the Windows Driver Kit support team.

    http://support.microsoft.com/common/international.aspx?rdpath=1&prid=13482

    Good luck!

    Justin


    Friday, January 11, 2013 10:08 PM
  • Hi Justin,

    Thank you very much for the support.

    I figured out that this does not happen with other printer models. Maybe, it does have something to do with SNMP.

    I will report this to the WDK support team then. 

    Tuesday, January 15, 2013 12:09 AM