Group Details Private

administrators

Member List

  • RE: VDX emulation problem

    You can paste pictures directly into the post btw. And I don't quite get your problem description. Could you please be more detailed, thanks.

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

    @molitar @Locksmith have a glimpse on the main page, should be a new category visible 😉

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

    Auto-disconnect on I/O idle implemented

    Alright, this challenge was easier to resolve than I initially thought (and without a single crash I might add!) thanks to the frameworks idle power-down capabilities:

    --------------------------- Nav connecting ---------------------------
    2019/05/19-17:48:09.682	TRACE_LEVEL_VERBOSE	BthPS3_IndicationCallback Entry
    2019/05/19-17:48:09.682	TRACE_LEVEL_INFORMATION	New connection for PSM 0x5053 from 00070401E341 arrived
    2019/05/19-17:48:09.682	TRACE_LEVEL_VERBOSE	L2CAP_PS3_HandleRemoteConnect Entry
    2019/05/19-17:48:09.682	TRACE_LEVEL_VERBOSE	ClientConnections_RetrieveByBthAddr Entry
    2019/05/19-17:48:09.682	TRACE_LEVEL_VERBOSE	ClientConnections_RetrieveByBthAddr Exit (STATUS_NOT_FOUND (0xC0000225))
    2019/05/19-17:48:09.682	TRACE_LEVEL_ERROR	BTHPS3_GET_DEVICE_NAME failed with status STATUS_INVALID_PARAMETER (0xC000000D), dropping connection
    2019/05/19-17:48:09.682	TRACE_LEVEL_VERBOSE	L2CAP_PS3_DenyRemoteConnect Entry
    2019/05/19-17:48:09.682	TRACE_LEVEL_VERBOSE	L2CAP_PS3_DenyRemoteConnectCompleted Entry (STATUS_SUCCESS (0x00000000))
    2019/05/19-17:48:09.682	TRACE_LEVEL_VERBOSE	L2CAP_PS3_DenyRemoteConnectCompleted Exit
    2019/05/19-17:48:09.682	TRACE_LEVEL_VERBOSE	L2CAP_PS3_DenyRemoteConnect Exit
    2019/05/19-17:48:09.682	TRACE_LEVEL_VERBOSE	BthPS3_IndicationCallback Exit
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	BthPS3_IndicationCallback Entry
    2019/05/19-17:48:10.488	TRACE_LEVEL_INFORMATION	New connection for PSM 0x5053 from 00070401E341 arrived
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	IRQL DPC (0x02) too high, preparing async call
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	BthPS3_IndicationCallback Exit
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	L2CAP_PS3_HandleRemoteConnectAsync Entry
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	L2CAP_PS3_HandleRemoteConnect Entry
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	ClientConnections_RetrieveByBthAddr Entry
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	ClientConnections_RetrieveByBthAddr Exit (STATUS_NOT_FOUND (0xC0000225))
    2019/05/19-17:48:10.488	TRACE_LEVEL_INFORMATION	++ Device 00070401E341 name: Navigation Controller
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x0, Context: 0xFFFF858FE830A0D0)
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	L2CAP_PS3_HandleRemoteConnect Exit (STATUS_SUCCESS (0x00000000))
    2019/05/19-17:48:10.488	TRACE_LEVEL_VERBOSE	L2CAP_PS3_HandleRemoteConnectAsync Exit
    2019/05/19-17:48:10.703	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ControlConnectResponseCompleted Entry
    2019/05/19-17:48:10.703	TRACE_LEVEL_INFORMATION	Connection completion, status: STATUS_SUCCESS (0x00000000)
    2019/05/19-17:48:10.703	TRACE_LEVEL_INFORMATION	HID Control Channel connection established
    2019/05/19-17:48:10.703	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ControlConnectResponseCompleted Exit
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	BthPS3_IndicationCallback Entry
    2019/05/19-17:48:10.897	TRACE_LEVEL_INFORMATION	New connection for PSM 0x5055 from 00070401E341 arrived
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	IRQL DPC (0x02) too high, preparing async call
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	BthPS3_IndicationCallback Exit
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	L2CAP_PS3_HandleRemoteConnectAsync Entry
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	L2CAP_PS3_HandleRemoteConnect Entry
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	ClientConnections_RetrieveByBthAddr Entry
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	++ Found desired connection item in connection list
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	ClientConnections_RetrieveByBthAddr Exit (STATUS_SUCCESS (0x00000000))
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x0, Context: 0xFFFF858FE830A0D0)
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	L2CAP_PS3_HandleRemoteConnect Exit (STATUS_SUCCESS (0x00000000))
    2019/05/19-17:48:10.897	TRACE_LEVEL_VERBOSE	L2CAP_PS3_HandleRemoteConnectAsync Exit
    2019/05/19-17:48:10.969	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x4, Context: 0xFFFF858FE830A0D0)
    2019/05/19-17:48:10.969	TRACE_LEVEL_INFORMATION	L2CAP_PS3_ConnectionIndicationCallback ++ IndicationRemoteConfigRequest
    2019/05/19-17:48:10.969	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    2019/05/19-17:48:11.092	TRACE_LEVEL_VERBOSE	L2CAP_PS3_InterruptConnectResponseCompleted Entry
    2019/05/19-17:48:11.092	TRACE_LEVEL_INFORMATION	Connection completion, status: STATUS_SUCCESS (0x00000000)
    2019/05/19-17:48:11.092	TRACE_LEVEL_INFORMATION	HID Interrupt Channel connection established
    2019/05/19-17:48:11.092	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionStateConnected Entry
    2019/05/19-17:48:11.092	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionStateConnected Exit
    2019/05/19-17:48:11.092	TRACE_LEVEL_VERBOSE	L2CAP_PS3_InterruptConnectResponseCompleted Exit
    2019/05/19-17:48:11.092	TRACE_LEVEL_VERBOSE	BthPS3_EvtWdfChildListCreateDevice Entry
    2019/05/19-17:48:11.093	TRACE_LEVEL_VERBOSE	BthPS3_EvtWdfChildListCreateDevice Exit
    --------------------------- Device connected, but no I/O, 10 seconds idle timeout ---------------------------
    2019/05/19-17:48:21.094	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtWdfDeviceD0Exit Entry
    2019/05/19-17:48:21.094	TRACE_LEVEL_INFORMATION	Requesting device disconnect
    2019/05/19-17:48:21.094	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtWdfDeviceD0Exit Exit
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x3, Context: 0xFFFF858FE830A0D0)
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	++ IndicationRemoteDisconnect [0xFFFF858FEFFB1B20]
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	++ HID Control Channel 0xFFFF858FEFFB1B20 disconnected
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ChannelDisconnectCompleted Entry (STATUS_SUCCESS (0x00000000))
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ChannelDisconnectCompleted Exit
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x1, Context: 0xFFFF858FE830A0D0)
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x3, Context: 0xFFFF858FE830A0D0)
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	++ IndicationRemoteDisconnect [0xFFFF858FEEE2CB20]
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	++ HID Interrupt Channel 0xFFFF858FEEE2CB20 disconnected
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ChannelDisconnectCompleted Entry (STATUS_SUCCESS (0x00000000))
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ChannelDisconnectCompleted Exit
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	++ Both channels are gone, awaiting clean-up
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	ClientConnections_RemoveAndDestroy Entry (ClientConnection: 0xFFFF858FE830A0D0)
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	++ Found desired connection item in connection list
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	ClientConnections_RemoveAndDestroy Exit
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x1, Context: 0xFFFF858FE830A0D0)
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    2019/05/19-17:48:21.237	TRACE_LEVEL_INFORMATION	EvtClientConnectionsDestroyConnection Entry (DISPOSING CONNECTION MEMORY)
    2019/05/19-17:48:21.237	TRACE_LEVEL_VERBOSE	EvtClientConnectionsDestroyConnection Exit
    2019/05/19-17:48:21.238	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtDeviceContextCleanup Entry
    2019/05/19-17:48:21.238	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtDeviceContextCleanup Exit
    --------------------------- Device connection dropped by profile driver ---------------------------
    

    Now when something happens to the I/O dispatching (like a process crash or a bug in the function driver), the idle timeout will kick in preventing the buffers from filling up uncontrolled and dropping the connection:

    --------------------------- Shibari active, dispatching I/O ---------------------------
    2019/05/19-17:54:15.514	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtWdfIoQueueIoDeviceControl Entry
    2019/05/19-17:54:15.514	TRACE_LEVEL_VERBOSE	>> IOCTL_BTHPS3_HID_INTERRUPT_READ
    2019/05/19-17:54:15.514	TRACE_LEVEL_VERBOSE	bufferLength: 50
    2019/05/19-17:54:15.514	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtWdfIoQueueIoDeviceControl Exit (status: STATUS_PENDING (0x00000103))
    2019/05/19-17:54:15.544	TRACE_LEVEL_VERBOSE	Interrupt read transfer request completed with status STATUS_SUCCESS (0x00000000) (remaining: 0)
    2019/05/19-17:54:15.544	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtWdfIoQueueIoDeviceControl Entry
    2019/05/19-17:54:15.544	TRACE_LEVEL_VERBOSE	>> IOCTL_BTHPS3_HID_INTERRUPT_READ
    2019/05/19-17:54:15.544	TRACE_LEVEL_VERBOSE	bufferLength: 50
    2019/05/19-17:54:15.544	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtWdfIoQueueIoDeviceControl Exit (status: STATUS_PENDING (0x00000103))
    2019/05/19-17:54:15.546	TRACE_LEVEL_VERBOSE	Interrupt read transfer request completed with status STATUS_SUCCESS (0x00000000) (remaining: 0)
    2019/05/19-17:54:15.547	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtWdfIoQueueIoDeviceControl Entry
    2019/05/19-17:54:15.547	TRACE_LEVEL_VERBOSE	>> IOCTL_BTHPS3_HID_INTERRUPT_READ
    2019/05/19-17:54:15.547	TRACE_LEVEL_VERBOSE	bufferLength: 50
    2019/05/19-17:54:15.547	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtWdfIoQueueIoDeviceControl Exit (status: STATUS_PENDING (0x00000103))
    --------------------------- Shibari killed by Task Manager so device is orphaned now ---------------------------
    2019/05/19-17:54:15.558	TRACE_LEVEL_VERBOSE	Control read transfer request completed with status STATUS_CANCELLED (0xC0000120)
    2019/05/19-17:54:15.558	TRACE_LEVEL_VERBOSE	Control read transfer request completed with status STATUS_CANCELLED (0xC0000120)
    2019/05/19-17:54:15.558	TRACE_LEVEL_VERBOSE	Interrupt read transfer request completed with status STATUS_CANCELLED (0xC0000120) (remaining: 0)
    2019/05/19-17:54:15.558	TRACE_LEVEL_VERBOSE	Interrupt read transfer request completed with status STATUS_CANCELLED (0xC0000120) (remaining: 0)
    --------------------------- Idle timeout kicked in, dropping device ---------------------------
    2019/05/19-17:54:25.558	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtWdfDeviceD0Exit Entry
    2019/05/19-17:54:25.558	TRACE_LEVEL_INFORMATION	Requesting device disconnect
    2019/05/19-17:54:25.559	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtWdfDeviceD0Exit Exit
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x3, Context: 0xFFFF858FE8E610D0)
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	++ IndicationRemoteDisconnect [0xFFFF858FEEA47B20]
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	++ HID Control Channel 0xFFFF858FEEA47B20 disconnected
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ChannelDisconnectCompleted Entry (STATUS_SUCCESS (0x00000000))
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ChannelDisconnectCompleted Exit
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x1, Context: 0xFFFF858FE8E610D0)
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x3, Context: 0xFFFF858FE8E610D0)
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	++ IndicationRemoteDisconnect [0xFFFF858FF3EDCB20]
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	++ HID Interrupt Channel 0xFFFF858FF3EDCB20 disconnected
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ChannelDisconnectCompleted Entry (STATUS_SUCCESS (0x00000000))
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ChannelDisconnectCompleted Exit
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	++ Both channels are gone, awaiting clean-up
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	ClientConnections_RemoveAndDestroy Entry (ClientConnection: 0xFFFF858FE8E610D0)
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	++ Found desired connection item in connection list
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	ClientConnections_RemoveAndDestroy Exit
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    2019/05/19-17:54:25.648	TRACE_LEVEL_INFORMATION	EvtClientConnectionsDestroyConnection Entry (DISPOSING CONNECTION MEMORY)
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	EvtClientConnectionsDestroyConnection Exit
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtDeviceContextCleanup Entry
    2019/05/19-17:54:25.648	TRACE_LEVEL_VERBOSE	BthPS3_PDO_EvtDeviceContextCleanup Exit
    2019/05/19-17:54:25.649	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Entry (Indication: 0x1, Context: 0xFFFF858FE8E610D0)
    2019/05/19-17:54:25.649	TRACE_LEVEL_VERBOSE	L2CAP_PS3_ConnectionIndicationCallback Exit
    --------------------------- Device connection dropped, all memory freed ---------------------------
    

    Nice, the list is getting shorter 😄

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

    @enricorov hm, a time bomb you mean? 🤔 Well, I'll figure something out, another issue that's more important to me and would need assistance with would be how to properly organize such a circle of testers, having feedback arriving in a nice ordered fashion etc.

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

    @enricorov I still need a strategy on how to involve testers without unfinished binaries spreading...

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

    BthPS3 + Shibari Demo with Nav and DS3 Controller [19.05.2019]

    It's time for another video 😃 I wanted to see if everything still works after the latest rework and so far everything's looking fine, also performance is stellar, even through Shibari which has to go from kernel to user to kernel context many times per second I notice no input lag whatsoever.

    Youtube Video

    Next I'll implement the buffer overrun protection.

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

    One more command 😄

    a766efac-567c-4098-83e1-a112d53bc586-image.png

    Now off to important things 💤

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

    Storing and loading settings implemented, that will be all for today 😄

    c8b97fa5-f265-42e4-9ab3-9a4f1a18a272-image.png

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

    Ha, there we go!

    3491ab69-e9aa-41f9-ad84-a8ab7a2f1d83-image.png

    Let's go for a test:

    2019/05/18-19:09:31.570	TRACE_LEVEL_INFORMATION	BthPS3PSM_SidebandIoDeviceControl Entry
    2019/05/18-19:09:31.570	TRACE_LEVEL_VERBOSE	PSM patch disabled for device 0
    2019/05/18-19:09:31.570	TRACE_LEVEL_INFORMATION	BthPS3PSM_SidebandIoDeviceControl Exit
    2019/05/18-19:09:36.919	TRACE_LEVEL_VERBOSE	>> Connection request for HID Control PSM 0x0011 arrived
    2019/05/18-19:09:36.919	TRACE_LEVEL_VERBOSE	-- NOT Patching HID Control PSM
    2019/05/18-19:09:55.703	TRACE_LEVEL_VERBOSE	>> Connection request for HID Control PSM 0x0011 arrived
    2019/05/18-19:09:55.703	TRACE_LEVEL_VERBOSE	-- NOT Patching HID Control PSM
    2019/05/18-19:09:57.801	TRACE_LEVEL_INFORMATION	BthPS3PSM_SidebandIoDeviceControl Entry
    2019/05/18-19:09:57.801	TRACE_LEVEL_VERBOSE	PSM patch enabled for device 0
    2019/05/18-19:09:57.801	TRACE_LEVEL_INFORMATION	BthPS3PSM_SidebandIoDeviceControl Exit
    2019/05/18-19:10:14.487	TRACE_LEVEL_VERBOSE	>> Connection request for HID Control PSM 0x0011 arrived
    2019/05/18-19:10:14.487	TRACE_LEVEL_INFORMATION	++ Patching HID Control PSM to 0x5053
    2019/05/18-19:10:14.877	TRACE_LEVEL_VERBOSE	>> Connection request for HID Interrupt PSM 0x0013 arrived
    2019/05/18-19:10:14.877	TRACE_LEVEL_INFORMATION	++ Patching HID Interrupt PSM to 0x5055
    

    Splendid! 😎

    posted in Research & Development