none
USB Serial Number test passes on Win8, but fails on Win8.1. RRS feed

  • Question

  • Using the same PC model on both Win8 and Win8.1, Optiplex 3010.

    Testing an input device on Win8 the USB Serial Number test passes as below:

    ==
    OS:   Windows 8 Pro
    Version:   6.2.9200.00 AMD64 
    Language:   English (US) (REDMOND)
    Build String:   win8_gdr-130531-1504
    Message 11/5/2013 1:51:10.863 PM Serial Number Log
     
    Message 11/5/2013 1:51:10.863 PM Unknown 6
     
    Message 11/5/2013 1:51:10.863 PM 11-5-2013

     
    Context _  _ 
    Context Index:   3540750336
    Current:   USBnum Test 1.1
    Parent:   WTTLOG
    Start Test 11/5/2013 1:51:11.863 PM USBnum Test 1.1
    Message 11/5/2013 1:51:11.863 PM Device under test found.
     
    Message 11/5/2013 1:51:11.863 PM USB Input Device
    Message 11/5/2013 1:51:11.863 PM
    Vid = 047F, Pid = 0113
     
    Message 11/5/2013 1:51:11.863 PM Serial number: 618077e85eabd740975d66ae5b63d6fa
     
    Message 11/5/2013 1:51:11.863 PM All serial number characters are valid.
     
    Message 11/5/2013 1:51:11.863 PM Matching Device Found.
     
    Message 11/5/2013 1:51:11.863 PM Serial number: eb2f9d8caaba754387b40d58c12e48c7
     
    Message 11/5/2013 1:51:11.863 PM All serial number characters are valid.
     
    Message 11/5/2013 1:51:11.863 PM PASS - serial number unique.

     
    End Test 11/5/2013 1:51:11.863 PM USBnum Test 1.1
    Result:   Pass
    Repro:   C:\WLK\JobsWorkingDir\Tasks\WTTJobRun2ED41CD3-F3BE-422C-B9B2-D991871945CD\usbnum.exe /d
    ==

    But testing an input device on Win8.1 the USB Serial Number test fails as below:

    ==
    OS:   Windows 8.1 Pro
    Version:   6.3.9200.00 AMD64 
    Language:   English (US) (REDMOND)
    Build String:   winblue_gdr-130913-2141
    Message 11/5/2013 1:49:09.767 PM Serial Number Log
     
    Message 11/5/2013 1:49:09.767 PM Unknown 6
     
    Message 11/5/2013 1:49:09.767 PM 11-5-2013

     
    Context _  _ 
    Context Index:   3540750336
    Current:   USBnum Test 1.1
    Parent:   WTTLOG
    Start Test 11/5/2013 1:49:09.767 PM USBnum Test 1.1
    Message 11/5/2013 1:49:09.767 PM Device under test found.
     
    Message 11/5/2013 1:49:09.767 PM USB Input Device
    Message 11/5/2013 1:49:09.767 PM
    Vid = 047F, Pid = 0113
     
    Message 11/5/2013 1:49:09.767 PM Serial number:
     
    Message 11/5/2013 1:49:09.767 PM All serial number characters are valid.
     
    Message 11/5/2013 1:49:10.767 PM Unable to enumerate the Device Node when checking for the MS OS Descriptor
    Message 11/5/2013 1:49:10.767 PM Matching Device Found.
     
    Message 11/5/2013 1:49:10.767 PM Serial number:
     
    Message 11/5/2013 1:49:10.767 PM All serial number characters are valid.
     
    Error 11/5/2013 1:49:10.767 PM Did not find second device
     
    File:   testsrc\driverstest\usb\usbnum\exe\usbnum.cpp Line: 977
    Error Type:   BOOL
    Error Code:   0x0
    Error Text:   Error 0x00000000
    Message 11/5/2013 1:49:10.767 PM FAIL

     
    End Test 11/5/2013 1:49:10.767 PM USBnum Test 1.1
    Result:   Fail
    Repro:   C:\WLK\JobsWorkingDir\Tasks\WTTJobRunE9728144-2D7A-40C4-A2D5-C1189329DB2E\usbnum.exe /d

    ==

    Win8.1 above, the serial number does not show up in the logs.

    Also when using USB Device Viewer, I get this error on Win8.1.
    Yet I can see the iSerialNumber and iProduct in device manager.

              ===>Device Descriptor<===
    bLength:                           0x12
    bDescriptorType:                   0x01
    bcdUSB:                          0x0200
    bDeviceClass:                      0x00  -> This is an Interface Class Defined Device
    bDeviceSubClass:                   0x00
    bDeviceProtocol:                   0x00
    bMaxPacketSize0:                   0x40 = (64) Bytes
    idVendor:                        0x047FidProduct:                       0x0113
    bcdDevice:                       0x0098
    iManufacturer:                     0x01
    *!*ERROR:  no String Descriptor for index 1!
    iProduct:                          0x02
    *!*ERROR:  no String Descriptor for index 2!
    iSerialNumber:                     0x03
    *!*ERROR:  no String Descriptor for index 3!
    bNumConfigurations:                0x01

    Does anybody have information for this issue?

    Thanks,

    Tuesday, November 5, 2013 11:59 PM

All replies

  • Error is "Did not find second device ".

    Do you insert the second device into HCK client with Windows 8.1?


    http://whqlcn.wordpress.com

    Thursday, November 7, 2013 3:17 AM
  • Yeah, I inserted the 2nd device and both do not report their serial numbers during the test.

    The same devices passes on the Win8 client.

    After further testing, it is looking like this is a device issue on Win8.1 and not a Win8.1/WHCK for Win8.1 issue.

    I am continuing to investigate this further.

    Best Regards,

    Friday, November 8, 2013 1:27 AM
  • I took a USB trace of both the passing Win8 and the failing Win8.1 clients with 2 serial numbered input devices. The trace shows the device selected for WHCK testing.

    The excerpt for Win8 is:

    Packet#
    _______|_______________________________________________________________________
    Transfer(21) F(S) Control(SET) ADDR(1) ENDP(0) D(H->D) Tp(C) R(I) bRequest(0x0A)
    _______| wValue(0x0000) wIndex(0x0000) wLength(0) Time Stamp(26 . 033 247 750)
    _______|_______________________________________________________________________
    Transfer(22) F(S) Control(GET) ADDR(1) ENDP(0) bRequest(GET_DESCRIPTOR)
    _______| wValue(REPORT_DESCRIPTOR type) wIndex(0x0000)
    _______| Descriptors(REPORT Descriptor) Time Stamp(26 . 035 249 600)
    _______|_______________________________________________________________________
    Transfer(27) F(S) Control(GET) ADDR(1) ENDP(0) bRequest(GET_DESCRIPTOR)
    _______| wValue(STRING type, LANGID codes requested) wIndex(Language ID 0x0000)
    _______| Descriptors(Lang Supported) Time Stamp(40 . 379 614 616)
    _______|_______________________________________________________________________

    Above shows the set address command, get report descriptor, and the get language id. The trace continues on to report the iManufacturer, iProduct, and iSerialNumber as expected.

    The excerpt for Win8.1 is:

    Packet#
    _______|_______________________________________________________________________
    Transfer(23) F(S) Control(SET) ADDR(2) ENDP(0) D(H->D) Tp(C) R(I) bRequest(0x0A)
    _______| wValue(0x0000) wIndex(0x0000) wLength(0) Time Stamp(51 . 381 637 266)
    _______|_______________________________________________________________________
    Transfer(24) F(S) Control(GET) ADDR(2) ENDP(0) bRequest(GET_DESCRIPTOR)
    _______| wValue(REPORT_DESCRIPTOR type) wIndex(0x0000)
    _______| Descriptors(REPORT Descriptor) Time Stamp(51 . 383 638 532)
    _______|_______________________________________________________________________
    Packet(18312) Dir Suspend(0 ns) Time Stamp(53 . 853 531 116)
    _______|_______________________________________________________________________

    Above shows the set address command, get report descriptor, but then the host issues a suspend 2 seconds later.

    I do not get the get language id, and the trace ends without seeing iManufacturer, iProduct, and iSerialNumber strings.

    Does anyone know why the host (Win8.1) is sending a suspend and not issuing the remaining commands similar to Win8?

    I will take a USB trace of the second serial numbered input device to see if there is anything going on at that end.

    Much thanks in advance.

    Thursday, November 14, 2013 6:27 AM