This is USB/IP Client for Windows which is fully compatible with USB/IP protocol
There is no official USB/IP client for Windows so far
Status
Client (VHCI driver)
Is fully implemented
Fully compatible with Linux USBIP server (at least for kernels 4.19 - 5.13)
Is not ready for production use, can cause BSOD or hang in the kernel. This usually happens during disconnection of a device or uninstallation of the driver.
The driver is not signed (Windows Test Signing Mode must be enabled)
Works on Windows 11/10 x64, x86 build is not supported
UDE client driver from the parent repo is removed. VHCI driver is superseded it.
Server (stub driver) is not the goal of this project. It is updated from original repo AS IS.
New USB device should appear in the system, use it as usual
Detach the remote USB device using its usb port, pass -1 to detach all remote devices
usbip.exe detach -p 1
port 1 is successfully detached
Uninstallation of USB/IP
Uninstall USB/IP app
Disable test signing
bcdedit.exe /set testsigning off
Reboot the system to apply
Obtaining USBIP logs on Windows
WPP Software Tracing is used
Use the tools for software tracing, such as TraceView, Tracelog, Tracefmt, and Tracepdb to configure, start, and stop tracing sessions and to display and filter trace messages
These tools are included in the Windows Driver Kit (WDK)
Use these tracing GUIDs
8b56380d-5174-4b15-b6f4-4c47008801a4 for vhci driver
8b56380d-5174-4b15-b6f4-4c47008801a4 for usbip_xfer utility
Start real-time log session for vhci driver
@echo off
set NAME=usbip-vhci
set TMFS=%TEMP%\tmfs
set TRACE_FORMAT_PREFIX=[%%9]%%3!04x! %%!LEVEL! %%!FUNC!:
tracelog.exe -stop %NAME%
tracelog.exe -start %NAME% -rt -guid #8b56380d-5174-4b15-b6f4-4c47008801a4 -f %NAME%.etl -flag 0x1F -level 5
tracepdb.exe -f D:\usbip-win2\x64\Debug -p %TMFS%
rem start /MAX tracefmt.exe -nosummary -p %TMFS% -displayonly -rt %NAME%
Stop the log session and get plain text log
@echo off
set NAME=usbip-vhci
set TMFS=%TEMP%\tmfs
set TRACE_FORMAT_PREFIX=[%%9]%%3!04x! %%!LEVEL! %%!FUNC!:
tracelog.exe -stop %NAME%
tracefmt.exe -nosummary -p %TMFS% -o %NAME%.txt %NAME%.etl
rem sed -i 's/TRACE_LEVEL_CRITICAL/CRT/;s/TRACE_LEVEL_ERROR/ERR/;s/TRACE_LEVEL_WARNING/WRN/;s/TRACE_LEVEL_INFORMATION/INF/;s/TRACE_LEVEL_VERBOSE/VRB/' %NAME%.txt