Xbox Wireless Adapter - Win 7 driver

Discussion in 'Windows 7' started by egalerst, Mar 8, 2021.

  1. egalerst

    egalerst MDL Junior Member

    Sep 3, 2017
    52
    26
    0
  2. George King

    George King MDL Expert

    Aug 5, 2009
    1,846
    2,131
    60
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  3. egalerst

    egalerst MDL Junior Member

    Sep 3, 2017
    52
    26
    0
    #3 egalerst, Mar 9, 2021
    Last edited: Mar 22, 2021
    (OP)
    Hello George,
    Thanks for your quick reply.
    I tested those drivers and can confirm that they are installing successfully on a 1790 adapter.
    Its kinda funny, cause after looking explicitly for those 6.3.9600.16384 drivers i found them listed on the MS update catalog - being the oldest ones available - 3 years before release of the new adapter ;)
    Pairing the controller also worked instantly. On the other hand i wasnt able to connect my headset as no new devices show up but i ill continue trying.
    Will let you know if sth changes.
    Thanks again.

    Edit: I see, for me the original MS driver didnt work, cause yours is patched ( PID corrected and signed with a chinese certificate - so maybe it even is the one i mentioned)
     
  4. egalerst

    egalerst MDL Junior Member

    Sep 3, 2017
    52
    26
    0
    #4 egalerst, Mar 20, 2021
    Last edited: Mar 23, 2021
    (OP)
    A little summary:

    As already mentioned, the controller works, but the Headset doesnt show up.
    Checked and compared the USB Tree for W10_NewDriver_Headset and W7_OldDriver_Headset_Controller.

    ======================== USB Device ========================

    +++++++++++++++++ Device Information ++++++++++++++++++
    Friendly Name : Xbox Wireless Adapter for Windows
    Device Description : Xbox Wireless Adapter for Windows
    Device Path 1 : \\?\USB#VID_045E&PID_02FE#454632#{cac88484-7515-4c03-82e6-71a87abac361} (GUID_DEVINTERFACE_NET)
    Device Path 2 : \\?\USB#VID_045E&PID_02FE#454632#{ad498944-762f-11d0-8dcb-00c04fc3358c}\{eec39cb1-0a21-4173-a983-bd6de943cd37} (GUID_NDIS_LAN_CLASS)
    Device Path 3 : \\?\USB#VID_045E&PID_02FE#454632#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
    Kernel Name : \Device\USBPDO-4
    Device ID : USB\VID_045E&PID_02FE\454632
    Hardware IDs : USB\VID_045E&PID_02FE&REV_0100 USB\VID_045E&PID_02FE
    Driver KeyName : {4d36e972-e325-11ce-bfc1-08002be10318}\0015 (GUID_DEVCLASS_NET)
    Driver : \SystemRoot\System32\drivers\mt7612US.sys (Version: 11777.0.0.0 Date: 2017-07-14)
    Driver Inf : C:\Windows\inf\oem43.inf
    Legacy BusType : PNPBus
    Class : Net
    Class GUID : {4d36e972-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_NET)
    Service : mt7612US
    Enumerator : USB
    Location Info : Port_#0004.Hub_#0001
    Location IDs : PCIROOT(0)#PCI(0801)#PCI(0003)#USBROOT(0)#USB(4), ACPI(_SB_)#ACPI(PCI0)#ACPI(GP17)#ACPI(XHC0)#ACPI(RHUB)#ACPI(PRT4)
    Container ID : {e87ff1a1-ec39-54a9-86a8-7500725b27d6}
    Manufacturer Info : Microsoft Corporation
    Capabilities : 0x94 (Removable, UniqueID, SurpriseRemovalOK)
    Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
    Problem Code : 0
    Upper Filters : xboxgip
    HcDisableSelectiveSuspend: 0
    EnableSelectiveSuspend : 0
    SelectiveSuspendEnabled : 0
    EnhancedPowerMgmtEnabled : 0
    IdleInWorkingState : 0
    WakeFromSleepState : 0
    Power State : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)
    Child Device 1 : Xbox Controller (USB-Audiogerät)
    Device Path 1 : \\?\USB#VID_10F5&PID_2189&IGA_00#00&00&0000A8215185ED7E&09&16#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\global (AM_KSCATEGORY_AUDIO)
    Device Path 2 : \\?\USB#VID_10F5&PID_2189&IGA_00#00&00&0000A8215185ED7E&09&16#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_CAPTURE)
    Device Path 3 : \\?\USB#VID_10F5&PID_2189&IGA_00#00&00&0000A8215185ED7E&09&16#{65e8773e-8f56-11d0-a3b9-00a0c9223196}\global (AM_KSCATEGORY_RENDER)
    Kernel Name : \Device\000000e4
    Device ID : USB\VID_10F5&PID_2189&IGA_00\00&00&0000A8215185ED7E&09&16
    Class : MEDIA
    Driver KeyName : {4d36e96c-e325-11ce-bfc1-08002be10318}\0003 (GUID_DEVCLASS_MEDIA)
    Service : usbaudio
    Location : Xbox Controller
    Child Device 1 : Kopfhörer (Xbox Controller) (Audioendpunkt)
    Device ID : SWD\MMDEVAPI\{0.0.0.00000000}.{10C4F5B3-887F-4D92-8575-AEFE10E38D50}
    Class : AudioEndpoint
    Driver KeyName : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e}\0002 (AUDIOENDPOINT_CLASS_UUID)
    Child Device 2 : Kopfhörermikrofon (Xbox Controller) (Audioendpunkt)
    Device ID : SWD\MMDEVAPI\{0.0.1.00000000}.{37D5D958-6505-46FC-B245-FE8785E161A8}
    Class : AudioEndpoint
    Driver KeyName : {c166523c-fe0c-4a94-a586-f1a80cfbbf3e}\0009 (AUDIOENDPOINT_CLASS_UUID)

    ======================== USB Device ========================

    +++++++++++++++++ Device Information ++++++++++++++++++
    Device Description : Xbox Wireless Adapter for Windows
    Device Path 1 : \\?\USB#VID_045E&PID_02FE#454632#{cac88484-7515-4c03-82e6-71a87abac361} (GUID_DEVINTERFACE_NET)
    Device Path 2 : \\?\USB#VID_045E&PID_02FE#454632#{ad498944-762f-11d0-8dcb-00c04fc3358c}\{5de56c8f-37f4-4de6-b454-e3fa5a0e07a1} (GUID_NDIS_LAN_CLASS)
    Device Path 3 : \\?\USB#VID_045E&PID_02FE#454632#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
    Kernel Name : \Device\USBPDO-13
    Device ID : USB\VID_045E&PID_02FE\454632
    Hardware IDs : USB\VID_045E&PID_02FE&REV_0100 USB\VID_045E&PID_02FE
    Driver KeyName : {4d36e972-e325-11ce-bfc1-08002be10318}\0021 (GUID_DEVCLASS_NET)
    Driver : system32\DRIVERS\mt7612US.sys (Version: 5888.0.0.0 Date: 2015-12-08)
    Driver Inf : C:\Windows\inf\oem190.inf
    Legacy BusType : PNPBus
    Class : Net
    Class GUID : {4d36e972-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_NET)
    Service : mt7612US
    Enumerator : USB
    Location Info : Port_#0002.Hub_#0003
    Location IDs : PCIROOT(0)#PCI(0400)#PCI(0000)#USBROOT(0)#USB(3)#USB(2)
    Container ID : {e87ff1a1-ec39-54a9-86a8-7500725b27d6}
    Manufacturer Info : Microsoft Corporation
    Capabilities : 0x94 (Removable, UniqueID, SurpriseRemovalOK)
    Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
    Problem Code : 0
    Upper Filters : xboxgip
    HcDisableSelectiveSuspend: 0
    EnableSelectiveSuspend : 0
    SelectiveSuspendEnabled : 0
    EnhancedPowerMgmtEnabled : 0
    IdleInWorkingState : 0
    WakeFromSleepState : 0
    Power State : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)
    Child Device 1 :
    Device ID : USB\VID_045E&PID_02FF&IG_00\01&00&0000A47ABB84ED7E
    Child Device 1 : XINPUT compatible HID device
    Device Path : \\?\HID#VID_045E&PID_02FF&IG_00#9&2d6b4c07&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
    Kernel Name : \Device\000000a5
    Device ID : HID\VID_045E&PID_02FF&IG_00\9&2D6B4C07&0&0000
    Class : HIDClass
    Driver KeyName : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0041 (GUID_DEVCLASS_HIDCLASS)

    ======================== USB Device ========================

    +++++++++++++++++ Device Information ++++++++++++++++++

    Device Description : Xbox Wireless Adapter for Windows
    Device Path 1 : \\?\USB#VID_045E&PID_02FE#454632#{cac88484-7515-4c03-82e6-71a87abac361} (GUID_DEVINTERFACE_NET)
    Device Path 2 : \\?\USB#VID_045E&PID_02FE#454632#{ad498944-762f-11d0-8dcb-00c04fc3358c}\{5de56c8f-37f4-4de6-b454-e3fa5a0e07a1} (GUID_NDIS_LAN_CLASS)
    Device Path 3 : \\?\USB#VID_045E&PID_02FE#454632#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
    Kernel Name : \Device\USBPDO-13
    Device ID : USB\VID_045E&PID_02FE\454632
    Hardware IDs : USB\VID_045E&PID_02FE&REV_0100 USB\VID_045E&PID_02FE
    Driver KeyName : {4d36e972-e325-11ce-bfc1-08002be10318}\0021 (GUID_DEVCLASS_NET)
    Driver : system32\DRIVERS\mt7612US.sys (Version: 5888.0.0.0 Date: 2015-12-08)
    Driver Inf : C:\Windows\inf\oem190.inf
    Legacy BusType : PNPBus
    Class : Net
    Class GUID : {4d36e972-e325-11ce-bfc1-08002be10318} (GUID_DEVCLASS_NET)
    Service : mt7612US
    Enumerator : USB
    Location Info : Port_#0002.Hub_#0003
    Location IDs : PCIROOT(0)#PCI(0400)#PCI(0000)#USBROOT(0)#USB(3)#USB(2)
    Container ID : {e87ff1a1-ec39-54a9-86a8-7500725b27d6}
    Manufacturer Info : Microsoft Corporation
    Capabilities : 0x94 (Removable, UniqueID, SurpriseRemovalOK)
    Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
    Problem Code : 0
    Upper Filters : xboxgip
    HcDisableSelectiveSuspend: 0
    EnableSelectiveSuspend : 0
    SelectiveSuspendEnabled : 0
    EnhancedPowerMgmtEnabled : 0
    IdleInWorkingState : 0
    WakeFromSleepState : 0
    Power State : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)

    Apparently in the headsets case no Child Devices are getting announced or forwarded to the OS.

    So i decided to see how the Win10 driver behaves in Win7 (Driver signing deactivated in all attempts)

    • Modifying win10 inf ( NTx86.6.2, NTAMD64.6.2 ==> NTx86.6.1, NTAMD64.6.1)
      • ==> Gets installed, but throws Code 39 (as mentioned in the initial post)
    • PE Inspection shows a few missing exports (available from Win8 - see initial post)
    • Replaced KeInitializeSpinLock with the inline
      Code:
      and     qword ptr [rcx], 0
    • Replaced the IAT entries of the APIs missing from NDIS with existing ones and set suspend options to disabled in hope of avoiding this codepath
    • Alternatively set CheckforHang & Reset Handler in NdisMRegisterMiniportDriver to NULL as they are supposed to be optional (hope of avoiding codepath)
    • Set Subsystem Major / Minor in PE optional Header to the Win7 values from the old driver (6/1)
    • Updated PE Header Checksum
      • ==> Crashes and Reboots. Time to hook up the Kernel Debugger
    • Driver gets through the Initial Loading stage of NT!IOPLoadDriver
    • After setting the EventDescriptor KMPnPEvt_DriverInit_Start and calling EtwWrite it dives into the DriverEntry function
      • Getting a Crash in the initial __security_init_cookie due to the new Win8 int29 FailFast
      • When manually forcing the security cookie to deliver i finally end up with Code 37 :)
      • Failure within DriverEntry: NdisMRegisterMiniportDriver returns 0x0C001004 = NDIS_STATUS_BAD_VERSION. Correct Dword 12E1E06h to 12E1406 for proper NDIS version
      • Now NdisMRegisterMiniportDriver returns 0x0C00000BB ?? (=> Result of failing SetOptions below)
      • Within NdisSetOptionalHandlers NDIS_OBJECT_TYPE_MINIPORT_SS_CHARACTERISTICS is initialized (Type 0xB4) => Not available in NDIS 6.20
      • When NdisSetOptionalHandlers is patched to act the same way as the Win7 driver it is installed properly and switches to yellow exclamation mark "Code 10" a few seconds later
    Notes:
    • The check for for Ndis version in the SetAttribute function ( > 6001 ) for MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES is removed
    • NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES are set with Revision 2 and also NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND is set (106 vs 06)
    • Also PM_Capabilities is set to Rev2 and differs in size
    • The "Idle Calls" seem only to be called from the SetOptionsHandler
    • The "Reset Call" seems only to be called from the OidRequestHandler
    Any hints or is it wasted time ?
     
  5. egalerst

    egalerst MDL Junior Member

    Sep 3, 2017
    52
    26
    0
    Apparently it was wasted time ;)
    Even if i would have been succesfull, i would have run into the 2021 enforced driver signing problems afterwards.
    As the drivers @George King posted, arent valid anymore because of that and because of Nvidias support i tried to help myself again.
    I succeeded in getting signed drivers and a signed catalog with a forged timestamp.

    As far as i understood the whole "signed drivers on W7 x64" topic, i was under the impression that signed drivers predating 29/7/2015 with a valid timestamp would be valid.
    The involved certificates are imported into LocalMachine TrustedCAs and TrustedPublisher

    signtool.exe verify lists everything as valid, but the driver installation results in Code 52.
    checking for kernel validity with parameter /kp results in
    Code:
    SignTool Error: Signing Cert does not chain to a Microsoft Root Cert.
    SignTool Error: File not valid: mt7612us.sys

    setupapi.dev.log logs the following:
    Code:
         sig:                          {_VERIFY_FILE_SIGNATURE} 18:31:57.197
         sig:                               Key      = mt7612us.inf
         sig:                               FilePath = C:\Windows\System32\DriverStore\Temp\{0d2f37aa-4fb1-6360-995d-bc59b83d5012}\mt7612us.inf
         sig:                               Catalog  = C:\Windows\System32\DriverStore\Temp\{0d2f37aa-4fb1-6360-995d-bc59b83d5012}\mt7612US.cat
    !    sig:                               Verifying file against specific (valid) catalog failed! (0x800b0109)
    !    sig:                               Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
         sig:                          {_VERIFY_FILE_SIGNATURE exit(0x800b0109)} 18:31:57.247
         sig:                          {_VERIFY_FILE_SIGNATURE} 18:31:57.247
         sig:                               Key      = mt7612us.inf
         sig:                               FilePath = C:\Windows\System32\DriverStore\Temp\{0d2f37aa-4fb1-6360-995d-bc59b83d5012}\mt7612us.inf
         sig:                               Catalog  = C:\Windows\System32\DriverStore\Temp\{0d2f37aa-4fb1-6360-995d-bc59b83d5012}\mt7612US.cat
         sig:                               Success: File is signed in Authenticode(tm) catalog.
         sig:                               Error 0xe0000241: The INF was signed with an Authenticode(tm) catalog from a trusted publisher.
         sig:                          {_VERIFY_FILE_SIGNATURE exit(0xe0000241)} 18:31:57.267
         sto:                          Validating driver package files against catalog 'mt7612US.cat'.
         sto:                          Driver package is valid.
    
    So where is my error ? Misinformation regarding acceptance of old certs ?
     
  6. ExtremeGrief

    ExtremeGrief MDL Addicted

    Jun 2, 2020
    729
    152
    30
    To sign something with the leaked NVIDIA certificate you need to set your computer date somewhere in 2012.
     
  7. egalerst

    egalerst MDL Junior Member

    Sep 3, 2017
    52
    26
    0
    Thanks for trying to help @ExtremeGrief!
    Of course i did that - otherwise i wouldnt have reached the status of "succeeded in getting signed..." :)
    Solved my problem. signtool /kp literally told me that the cross certificate chain didnt end at a MS Root cert.
    I somehow had a wrong Verisigncross certificate ;(
    All good now.
    Should i supply the driver package here in case im not the only nerd ?
     
  8. the_soft45

    the_soft45 MDL Member

    Mar 28, 2016
    214
    129
    10
    There are plenty of nerds interested in an updated Xbox One Wireless Adapter driver for Windows 7, me included :D
     
  9. kebabstorm

    kebabstorm MDL Junior Member

    Aug 3, 2016
    94
    120
    0
    Wait, what? There was an update in 2021 which forces you to use signed drivers only? Signature check can't be disabled anymore? I haven't updated in a while and looking into making a updated win7 iso & fresh install. I want to make sure there are no caveats.
     
  10. ExtremeGrief

    ExtremeGrief MDL Addicted

    Jun 2, 2020
    729
    152
    30
    On updated Windows 7 to March 2022 I can easily install unsigned drivers normally from device manager, even without disabling signature enforcement from F8 Startup Menu.
     
  11. George King

    George King MDL Expert

    Aug 5, 2009
    1,846
    2,131
    60
    #11 George King, Mar 23, 2022
    Last edited: Mar 23, 2022
    Is it really necessary to resign them?
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  12. Carlos Detweiller

    Carlos Detweiller Emperor of Ice-Cream

    Dec 21, 2012
    6,316
    7,023
    210
    AFAIK, the signing requirement only applies to kernel-mode drivers, and only on the 64bit architecture.
     
  13. egalerst

    egalerst MDL Junior Member

    Sep 3, 2017
    52
    26
    0
  14. kebabstorm

    kebabstorm MDL Junior Member

    Aug 3, 2016
    94
    120
    0
  15. kebabstorm

    kebabstorm MDL Junior Member

    Aug 3, 2016
    94
    120
    0
    @egalerst you use a timestamp server as countersigner for your Xbox driver? or does it work locally without internet connection?
     
  16. pm67310

    pm67310 MDL Guru

    Sep 6, 2011
    2,304
    1,534
    90
    Yes she use local timestamp from github
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  17. kebabstorm

    kebabstorm MDL Junior Member

    Aug 3, 2016
    94
    120
    0
    Yeah okay so the server is used only for the timestamping part (when it's being timestamped/signed), not the validation part (when it's installed/used, which is handled simply by the TSA cert), I understand now, thanks.
     
  18. egalerst

    egalerst MDL Junior Member

    Sep 3, 2017
    52
    26
    0
    #18 egalerst, Mar 28, 2022
    Last edited: Mar 28, 2022
    (OP)
    Capcom is completely fine, as the expired certificate was signed with a legit timestamp within its validity frame.
    Also a proper cross certificate chain that ends in MS root exists.

    Cross Certificate Chain:
    Issued to: Microsoft Code Verification Root
    Issued by: Microsoft Code Verification Root
    Expires: Sat Nov 01 15:54:03 2025
    SHA1 hash: 8FBE4D070EF8AB1BCCAF2A9D5CCAE7282A2C66B3

    Issued to: VeriSign Class 3 Public Primary Certification Authority - G5
    Issued by: Microsoft Code Verification Root
    Expires: Mon Feb 22 21:35:17 2021
    SHA1 hash: 57534CCC33914C41F70E2CBB2103A1DB18817D8B

    Issued to: Symantec Class 3 SHA256 Code Signing CA
    Issued by: VeriSign Class 3 Public Primary Certification Authority - G5
    Expires: Sun Dec 10 01:59:59 2023
    SHA1 hash: 007790F6561DAD89B0BCD85585762495E358F8A5

    Issued to: CAPCOM Co.,Ltd.
    Issued by: Symantec Class 3 SHA256 Code Signing CA
    Expires: Wed May 03 01:59:59 2017
    SHA1 hash: AB0E343FD727DE4869897A9AB7CA64512B36D0E9

    Successfully verified: Capcom.sys

    If MS had revoked the Capcom signing cert (7E 59 40 8d...) they would have blocked all Capcom Games which used that cert.

    When having an expired cert the file needs to have a valid timestamp entry, as otherwise the code signing cert would be considered expired.
    Therefore my version has got a stamp, but as it is selfsigned i need to import the cert in Trusted Publishers / root.
    Besides that it works totally offline of course.

    Working with a single sys driver is a little bit more uncomplicated, as you dont have the catalog file which prohibits modifying the underlying *.sys/*.inf.
    Furthermore the *.cats dont support dual signing.
    In the end, of course, it is just more work.

    Can someone with W7 x64 and an adapter v1790 confirm it works as expected ?
    Then i would link it more apparent ;)
     
  19. jmeno

    jmeno MDL Novice

    Jul 3, 2011
    9
    0
    0
    The newer adpater unfortunately dont worked for me, i had buy the bigger older model dongle. Controller 1708.Because other reasons i run in test mode, i never had signature problems.
     
  20. egalerst

    egalerst MDL Junior Member

    Sep 3, 2017
    52
    26
    0
    Could you please elaborate what where and when the driver doesnt work ?

    -Adapter v1790 ?
    -Win7 x64 ?
    -Certificate imported ?
    -Code in device manager if it doesnt work ?
    -Output of signtool verify if it doesnt work ?
    -Output of setupapi.dev.log if installing fails