# dorssel/usbipd-win

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/dorssel-usbipd-win).**

5,398 stars · 323 forks · C# · gpl-3.0

## Links

- GitHub: https://github.com/dorssel/usbipd-win
- awesome-repositories: https://awesome-repositories.com/repository/dorssel-usbipd-win.md

## Topics

`hyper-v` `usb` `usbip` `usbip-win` `usbipd` `windows` `wsl` `wsl2`

## Description

usbipd-win is a USB device sharing tool and network device driver that binds physical USB hardware to a network protocol. It serves as a management interface for sharing and attaching USB devices via network protocols, specifically providing a utility to map shared hardware directly into Windows Subsystem for Linux instances.

The project implements USB over IP networking to share locally connected devices over a network for discovery by remote client machines. It enables virtual machine USB passthrough, allowing guest operating systems to interact with physical hardware directly.

The software includes capabilities for USB device attachment and sharing, alongside status monitoring to verify the current state of connected hardware. These functions are accessible through both a command-line interface and a graphical user interface.

## Tags

### Networking & Communication

- [Network Protocol Implementations](https://awesome-repositories.com/f/networking-communication/network-protocol-implementations.md) — Implements the USBIP network protocol to enable remote hardware access over TCP/IP.
- [Remote Hardware Interfaces](https://awesome-repositories.com/f/networking-communication/remote-hardware-interfaces.md) — Provides a network-accessible interface that allows remote environments to treat shared USB devices as local hardware.
- [USB over IP Networking](https://awesome-repositories.com/f/networking-communication/usb-over-ip-networking.md) — Shares locally connected USB devices over a network to be discovered and used by remote client machines.

### DevOps & Infrastructure

- [Service Daemons](https://awesome-repositories.com/f/devops-infrastructure/service-daemons.md) — Operates a persistent background service to manage USB device bindings and handle client attachment requests.
- [System Service Integration](https://awesome-repositories.com/f/devops-infrastructure/system-service-integration.md) — Integrates with Windows system services to maintain the administrative privileges needed for hardware driver binding.

### Hardware & IoT

- [USB Device Identification](https://awesome-repositories.com/f/hardware-iot/usb-device-communication/usb-device-identification.md) — Identifies and maps shared USB devices into Windows Subsystem for Linux instances for hardware access.
- [Request Block Marshalling](https://awesome-repositories.com/f/hardware-iot/usb-device-communication/usb-device-stacks/usb-host-communications/request-block-marshalling.md) — Serializes low-level USB request blocks into network packets for transmission between the host and remote guest.
- [USB Device Sharing Tools](https://awesome-repositories.com/f/hardware-iot/usb-device-sharing-tools.md) — Binds physical USB hardware to a network protocol for use in virtualized and remote environments.

### Operating Systems & Systems Programming

- [USB Passthrough](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/peripheral-passthrough/usb-passthrough.md) — Enables binding physical USB hardware to virtual machines so guest operating systems can interact with them directly.
- [Kernel-to-User Bridges](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-to-user-bridges.md) — Implements a driver bridge that redirects USB stack requests from the kernel to network sockets in user-space.
- [USB Device Attachment](https://awesome-repositories.com/f/operating-systems-systems-programming/usb-device-attachment.md) — Connects shared USB devices to virtual machines or WSL instances by removing their availability from the host. ([source](https://github.com/dorssel/usbipd-win/wiki/WSL-support))
- [USB Device Sharing](https://awesome-repositories.com/f/operating-systems-systems-programming/usb-device-sharing.md) — Binds local USB devices to a network protocol for access within virtualized or remote environments. ([source](https://github.com/dorssel/usbipd-win/wiki/WSL-support))
- [Network Device Drivers](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/network-device-drivers.md) — Exports local USB devices over a network using the USBIP protocol for remote attachment.
- [WSL Hardware Integration](https://awesome-repositories.com/f/operating-systems-systems-programming/wsl-hardware-integration.md) — Connecting physical USB devices to a Windows Subsystem for Linux instance for local development and testing.

### Development Tools & Productivity

- [Command Line Interfaces](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces.md) — Provides a command-line utility to send control commands to the background daemon via a local API.

### System Administration & Monitoring

- [Management Interface Networking](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/remote-access-interface-tools/administrative-interfaces/management-interfaces/management-interface-networking.md) — Provides a set of command-line and visual tools to manage the networking and binding of USB devices.

### User Interface & Experience

- [Hardware Management GUIs](https://awesome-repositories.com/f/user-interface-experience/hardware-management-guis.md) — Provides a visual interface to control USB sharing and attachment instead of relying solely on the command line. ([source](https://github.com/dorssel/usbipd-win/wiki/Graphical-User-Interfaces))
