Tablet PC Input Service Stopped after USB reset in Win7


  1. Posts : 4
    Win 7
       #1

    Tablet PC Input Service Stopped after USB reset in Win7


    Hi ,
    I am new to this forum and need a quick help on the following issue.
    We have developed a touch device driver on a micro-controller which works with Win7 through USB HID interface.
    When the device is connected to the WIN7 host, it enumerates properly and we are able to see the touch gestures working on the WIN7 and "Tablet PC Input Service" service is in running state.
    But when we do a restart or replug of the device then "Tablet PC Input Service" service is going to stopped state, even though the enumeration is proper and we can see that in the device manager.


    But if we do the Rest or Replug for the next time then "Tablet PC Input Service" service is moving to running state i.e every alternate replug or reset is making the service to be stopped.

    But when we delay this replugging of the USB for some time say(Till the device manager completely de-enumerates(removes) the device), then the "Tablet PC Input Service" service is moving to running state properly.


    To Summarize "Fast replugs or resets of the USB device is making the "Tablet PC Input Service" service to go ON and OFF"

    Please help me to solve this , its turning out to be critical for us.

    Thanks in Advance
    Siva
      My Computer


  2. Posts : 2,111
    Win7 Build 7600 x86
       #2

    If I understand this correctly:

    When you unplug and replug the device too fast,
    (before the device manager had a chance to remove the device),
    the service goes to "stopped".

    When you wait until device manager successfully completes the removal,
    and replug the device, the service stays "started".

    So what you need would be a way to make the detection of plugged-in devices wait until removal of unplugged devices is completed, right?

    Greetz
      My Computer


  3. Posts : 2,111
    Win7 Build 7600 x86
       #3

    Hi again pothirs,

    While this may not apply directly for your problem, it might set you in the right direction.

    A guy posted this question which he then answered himself.

    Especially note the second quote

    Hello,

    I wrote a bootloader for the STR912, sitting in BANK1. The main application sits in BANK0, and incorporates a virtual COM port via the USB stack.

    Now, I don't have enough code space to incorporate the USB stack in the bootloader, and the bootloader takes about 200 milliseconds before launching the application (there are many reasons for this, which I won't go into).

    During these 200 milliseconds, Windows detects the device because of a pull-up resistor on USBD+, starts plug-and-play, which fails because the bootloader (which is still running) does not contain a USB driver.

    Is there a way, via a few lines of code, to force the USB transceiver to drive USBD+ low, hence disabling plug-and-play until the main application has started ?
    Nah, forget it, my bad.
    My hardware design should have incorporated a GPIO to enable or disable the pull-up resistor on USBD+ (like on the STR912-SK).
    Another quote that might be helpful
    As far as knowing when Windows is through enumerating each device,
    monitor WM_DEVICECHANGE and look DBT_DEVICEARRIVAL .
    Maybe this artical about USB will set you on the right track.
    Isolating USB - Maxim

    Hope it is somewhat helpful to you.

    Greetz
      My Computer


  4. Posts : 2,111
    Win7 Build 7600 x86
       #4

    One thing I found in services.

    When you double click the "Tablet PC Input Service", and go to the third tab,
    you'll see 1st error = restart service, 2nd error = restart service,
    and the "next errors" is set to no action.

    Try setting it to "restart service" also.

    I realize this will only have any effect if the stopping of the service generates an error, so it might not be helpful in your case.

    I am unable to answer your direct question, but I hope by giving you input from different angles, I might accidentally point you in the right direction.

    Greetz
      My Computer


  5. Posts : 4
    Win 7
    Thread Starter
       #5

    Hi Greetz,
    Thank u very much for your replies
    On the device side we don't have any issues with hardware(Pull up resistors etc).
    This is confirmed because even in the situation when the "Tablet PC Input Service" is stopped device is able to send touch report packets to the Host , this we have seen in the analyzer.

    The only issue is after each plug and play "Tablet PC Input Service" is going in to the states of Running and stopped alternatively.

    Regarding your Query "So what you need would be a way to make the detection of plugged-in devices wait until removal of unplugged devices is completed, right?"
    This should be taken care in the Host side right? so that when there is a detach event happening it should stop the "Tablet PC Input Service" and as soon as an attach event happens it should start running.

    Thanks
    Siva
      My Computer


  6. Posts : 4
    Win 7
    Thread Starter
       #6

    I tried the 3rd error setting to "restart service" even then the issue is there

    Thanks
    Siva
      My Computer


  7. Posts : 2,111
    Win7 Build 7600 x86
       #7

    pothirs said:
    Hi Greetz,
    Thank u very much for your replies
    On the device side we don't have any issues with hardware(Pull up resistors etc).
    This is confirmed because even in the situation when the "Tablet PC Input Service" is stopped device is able to send touch report packets to the Host , this we have seen in the analyzer.

    The only issue is after each plug and play "Tablet PC Input Service" is going in to the states of Running and stopped alternatively.

    Regarding your Query "So what you need would be a way to make the detection of plugged-in devices wait until removal of unplugged devices is completed, right?"
    This should be taken care in the Host side right? so that when there is a detach event happening it should stop the "Tablet PC Input Service" and as soon as an attach event happens it should start running.

    Thanks
    Siva
    My guess is that unplugging a device shouldn't lead to the service being stopped.

    Even people without a tablet PC's have this service running by default.

    The "Tablet PC Input Service" depends on two other services.
    Namely, Plug & play service and RPC (remote procedure call service)

    Are those services affected as well, when the Tablet service is stopped?

    Greetz

    Michel
      My Computer


  8. Posts : 4
    Win 7
    Thread Starter
       #8

    No Greetz the other two services are not stopped, they are in runninng state

    Thanks
    Siva
      My Computer


  9. Posts : 2,111
    Win7 Build 7600 x86
       #9

    pothirs said:
    No Greetz the other two services are not stopped, they are in runninng state

    Thanks
    Siva


    My name is not Greetz, it's slang for greetings.
      My Computer


  10. Posts : 1
    Lots
       #10

    We see a similar problem. I'm just wondering if we can work around this by starting the service from our application. Does anyone know if there's a Windows command to do this in C?

    Thanks.
      My Computer


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 18:37.
Find Us