Group Details Private

Vigemites

ViGEm devs or other highly privileged

  • RE: Bluetooth Filter Driver for DS3-compatibility - research notes

    In my previous test run the filter crashed at the test Wdf - Kmdf Fault Injection Test

    This test is actually amazing! 😲 Summary:

    For each DDI that has been configured for fault injection, the WdfFiTester tool returns an NTSTATUS code of STATUS_UNSUCCESSFUL. The driver is expected to handle the failure.

    That is really cool! It means, that it uncovers continued code execution where a faulty return code of a WDF function call isn't caught properly, which may lead to a crash (as demonstrated in my last run). I think I've nailed down the issue in my code and just started another run. Fingers crossed 🤞

    posted in Research & Development
  • RE: [Shibari] Get-FireShockDevice hanging PowerShell (USB connection with controller is working but running into problems with bluetooth)

    Ahoi, for pairing alone you don't need AirBender, try to restart Shibari and don't click into the console window while executing the commandlet.

    posted in Discussion and Support
  • RE: Bluetooth Filter Driver for DS3-compatibility - research notes

    Dammit, almost... 👀

    vmware_ZKTaK1RimB.png

    What's going on here....

    STACK_TEXT:  
    nt!DbgBreakPoint
    Wdf01000!imp_WdfCollectionRemove+0x2d1 [d:\win8_ldr\minkernel\wdf\framework\kmdf\src\support\fxcollectionapi.cpp @ 270] 
    wdftester!wdftester_WdfCollectionRemove+0xfe
    BthPS3PSM!BthPS3PSM_EvtDeviceContextCleanup+0x103 [d:\development\git.vigem.org\bthps3\bthps3psm\device.c @ 372] 
    Wdf01000!FxObject::DisposeChildrenWorker+0x2fa [d:\win8_ldr\minkernel\wdf\framework\shared\object\fxobjectstatemachine.cpp @ 1188] 
    Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0xbc [d:\win8_ldr\minkernel\wdf\framework\shared\object\fxobjectstatemachine.cpp @ 814] 
    Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xfb [d:\win8_ldr\minkernel\wdf\framework\shared\object\fxobjectstatemachine.cpp @ 894] 
    Wdf01000!FxObject::EarlyDispose+0x117 [d:\win8_ldr\minkernel\wdf\framework\shared\object\fxobjectstatemachine.cpp @ 460] 
    Wdf01000!FxPkgPnp::PnpEventRemovedCommonCode+0x1e2 [d:\win8_ldr\minkernel\wdf\framework\shared\irphandlers\pnp\pnpstatemachine.cpp @ 2047] 
    Wdf01000!FxPkgFdo::PnpEventFdoRemovedOverload+0x9 [d:\win8_ldr\minkernel\wdf\framework\shared\irphandlers\pnp\fxpkgfdo.cpp @ 1244] 
    Wdf01000!FxPkgPnp::PnpEnterNewState+0x1a1 [d:\win8_ldr\minkernel\wdf\framework\shared\irphandlers\pnp\pnpstatemachine.cpp @ 1231] 
    Wdf01000!FxPkgPnp::PnpProcessEventInner+0x122 [d:\win8_ldr\minkernel\wdf\framework\shared\irphandlers\pnp\pnpstatemachine.cpp @ 1147] 
    Wdf01000!FxPkgPnp::PnpProcessEvent+0x18d [d:\win8_ldr\minkernel\wdf\framework\shared\irphandlers\pnp\pnpstatemachine.cpp @ 933] 
    Wdf01000!FxDevice::DeleteDeviceFromFailedCreateNoDelete+0x13e [d:\win8_ldr\minkernel\wdf\framework\kmdf\src\core\fxdevice.cpp @ 530] 
    Wdf01000!FxDriver::AddDevice+0x158 [d:\win8_ldr\minkernel\wdf\framework\kmdf\src\core\fxdriver.cpp @ 550] 
    nt!PpvUtilCallAddDevice+0x45
    nt!PnpCallAddDevice+0xd5
    nt!PipCallDriverAddDevice+0x661
    nt!PipProcessDevNodeTree+0x2b2
    nt!PiRestartDevice+0xc7
    nt!PnpDeviceActionWorker+0x313
    nt!ExpWorkerThread+0x111
    nt!PspSystemThreadStartup+0x194
    nt!KiStartSystemThread+0x16
    

    Alright, what went wrong there on device disposal...

    --- start of log ---
    1: FxIFRStart - FxIFR logging started
    2: LockVerifierSection - Increment Lock counter (2) for Verifier Paged Memory from  \REGISTRY\MACHINE\SYSTEM\ControlSet001\services\BthPS3PSM from driver globals FFFFFA8009A2B970
    3: FxVerifierLock::InitializeLockOrder - Object Type 0x1036 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
    4: FxVerifierLock::InitializeLockOrder - Object Type 0x1036 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
    5: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x0000057FF58B94E8 !devobj 0xFFFFFA800AD37C20 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated
    6: FxDevice::DeleteDeviceFromFailedCreateNoDelete - WDFDEVICE 0000057FF58B94E8 !devobj FFFFFA800AD37C20 created, but EvtDriverDeviceAdd returned status 0xc0000001(STATUS_UNSUCCESSFUL) or failure in creation
    7: FxDevice::DeleteDeviceFromFailedCreateNoDelete - WDFDEVICE 0000057FF58B94E8, !devobj FFFFFA800AD37C20 is a filter, converting 0xc0000001(STATUS_UNSUCCESSFUL) to STATUS_SUCCESS
    8: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x0000057FF58B94E8 !devobj 0xFFFFFA800AD37C20 entering PnP State WdfDevStatePnpRemoved from WdfDevStatePnpInit
    9: FxChildList::NotifyDeviceRemove - WDFCHILDLIST 0000057FF597F388:  removing children
    10: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x0000057FF58B94E8 !devobj 0xFFFFFA800AD37C20 entering PnP State WdfDevStatePnpRemovedChildrenRemoved from WdfDevStatePnpRemoved
    11: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x0000057FF58B94E8 !devobj 0xFFFFFA800AD37C20 entering PnP State WdfDevStatePnpFdoRemoved from WdfDevStatePnpRemovedChildrenRemoved
    12: FxPkgIo::StopProcessingForPower - Perform FxIoStopProcessingForPowerPurgeNonManaged for all queues of WDFDEVICE 0x0000057FF58B94E8
    13: FxIoTarget::WaitForDisposeEvent - WDFIOTARGET 0000057FF59F0368, Waiting on Dispose event FFFFF880031B0AD0
    14: imp_WdfCollectionRemove - WDFOBJECT 0000057FF58B94E8 not in WDFCOLLECTION 0000057FF57BAF78, 0xc0000225(STATUS_NOT_FOUND)
    ---- end of log ----
    

    Oh 😐 How did I manage to provoke that. Well, back to fixing stuff 😅

    posted in Research & Development
  • RE: Bluetooth Filter Driver for DS3-compatibility - research notes

    @Poosaurus you too 😛

    posted in Research & Development
  • RE: Bluetooth Filter Driver for DS3-compatibility - research notes

    @tulio150 @ryantburke done, welcome!

    posted in Research & Development
  • RE: Bluetooth Filter Driver for DS3-compatibility - research notes

    Oh yes, give me more green! All the green tick marks! 😎

    vmware_8NifFZYSXJ.png

    posted in Research & Development
  • RE: Use ViGEm to create XBox 360 controller in C#

    @pejman you simply subscribe to the FeedbackReceived event.

    posted in Discussion and Support
  • RE: Bluetooth Filter Driver for DS3-compatibility - research notes

    Jo, it's WHQL-o-clock 😅

    586b0df3-e046-49ff-8470-fe347dae078d-image.png

    This time the filter is my primary test subject. Fingers crossed! ☠

    posted in Research & Development
  • RE: Bluetooth Filter Driver for DS3-compatibility - research notes

    Since test feedback has been very pleasing so far I'll cut back on recruitment today and implement the missing bits and pieces in the drivers and then throw them into the WHQL test bench. Will keep you updated.

    posted in Research & Development