From 6a4ae5263ee83aed2e75b2cafca2bb694f419e4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Mon, 18 May 2026 12:38:47 +0800 Subject: [PATCH] usbip: extract URBEngine + userspaceURBSession from darwin backend Both the existing darwin backend and the upcoming windows backend drive USB devices from user space (IOUSBHost CGO calls vs. VBoxUSB IOCTLs). Refactor the per-attachment URB loop out of host_darwin.go into a platform-agnostic userspaceURBSession that talks to a URBEngine interface; the darwin-specific dispatch becomes a 30-line darwinIOUSBHostEngine. Linux's kernelHandoffSession is untouched. Move hex8 into shared.go and add usbipStatusEIO so the shared session does not depend on golang.org/x/sys/unix (Windows has no equivalent). --- common/vboxusb/assets/amd64/VBoxUSB.cat | Bin 0 -> 12014 bytes common/vboxusb/assets/amd64/VBoxUSB.inf | 103 ++++ common/vboxusb/assets/amd64/VBoxUSB.sys | Bin 0 -> 182792 bytes common/vboxusb/assets/amd64/VBoxUSBMon.sys | Bin 0 -> 197232 bytes common/vboxusb/assets/arm64/VBoxUSB.cat | Bin 0 -> 11927 bytes common/vboxusb/assets/arm64/VBoxUSB.inf | 103 ++++ common/vboxusb/assets/arm64/VBoxUSB.sys | Bin 0 -> 180704 bytes common/vboxusb/assets/arm64/VBoxUSBMon.sys | Bin 0 -> 195696 bytes common/vboxusb/assets_windows_amd64.go | 26 + common/vboxusb/assets_windows_arm64.go | 26 + common/vboxusb/assets_windows_unsupported.go | 5 + common/vboxusb/device_windows.go | 310 ++++++++++++ common/vboxusb/driver_windows.go | 260 ++++++++++ common/vboxusb/monitor_windows.go | 216 +++++++++ common/vboxusb/pnp_windows.go | 265 +++++++++++ common/vboxusb/privilege_windows.go | 56 +++ common/vboxusb/vboxusb.go | 175 +++++++ service/usbip/data_protocol.go | 1 + service/usbip/engine_darwin.go | 39 ++ service/usbip/host_darwin.go | 460 +----------------- service/usbip/session_userspace.go | 470 +++++++++++++++++++ service/usbip/shared.go | 5 + service/usbip/shared_darwin.go | 8 - service/usbip/urb_engine.go | 49 ++ 24 files changed, 2110 insertions(+), 467 deletions(-) create mode 100644 common/vboxusb/assets/amd64/VBoxUSB.cat create mode 100644 common/vboxusb/assets/amd64/VBoxUSB.inf create mode 100644 common/vboxusb/assets/amd64/VBoxUSB.sys create mode 100644 common/vboxusb/assets/amd64/VBoxUSBMon.sys create mode 100644 common/vboxusb/assets/arm64/VBoxUSB.cat create mode 100644 common/vboxusb/assets/arm64/VBoxUSB.inf create mode 100644 common/vboxusb/assets/arm64/VBoxUSB.sys create mode 100644 common/vboxusb/assets/arm64/VBoxUSBMon.sys create mode 100644 common/vboxusb/assets_windows_amd64.go create mode 100644 common/vboxusb/assets_windows_arm64.go create mode 100644 common/vboxusb/assets_windows_unsupported.go create mode 100644 common/vboxusb/device_windows.go create mode 100644 common/vboxusb/driver_windows.go create mode 100644 common/vboxusb/monitor_windows.go create mode 100644 common/vboxusb/pnp_windows.go create mode 100644 common/vboxusb/privilege_windows.go create mode 100644 common/vboxusb/vboxusb.go create mode 100644 service/usbip/engine_darwin.go create mode 100644 service/usbip/session_userspace.go delete mode 100644 service/usbip/shared_darwin.go create mode 100644 service/usbip/urb_engine.go diff --git a/common/vboxusb/assets/amd64/VBoxUSB.cat b/common/vboxusb/assets/amd64/VBoxUSB.cat new file mode 100644 index 0000000000000000000000000000000000000000..25c481eaf25c869c79988f9c84b41fce227204fb GIT binary patch literal 12014 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 literal 0 HcmV?d00001 diff --git a/common/vboxusb/assets/amd64/VBoxUSB.inf b/common/vboxusb/assets/amd64/VBoxUSB.inf new file mode 100644 index 000000000..48e4bf49b --- /dev/null +++ b/common/vboxusb/assets/amd64/VBoxUSB.inf @@ -0,0 +1,103 @@ +; $Id: VBoxUSB.inf 170711 2025-09-29 16:57:21Z klaus $ +;; @file +; VBox host drivers - USB drivers - Win32 USB device +; + +; +; Copyright (C) 2011-2025 Oracle and/or its affiliates. +; +; This file is part of VirtualBox base platform packages, as +; available from https://www.virtualbox.org. +; +; This program is free software; you can redistribute it and/or +; modify it under the terms of the GNU General Public License +; as published by the Free Software Foundation, in version 3 of the +; License. +; +; This program is distributed in the hope that it will be useful, but +; WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +; General Public License for more details. +; +; You should have received a copy of the GNU General Public License +; along with this program; if not, see . +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL), a copy of it is provided in the "COPYING.CDDL" file included +; in the VirtualBox distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; +; SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 +; + +[Version] +Signature="$Windows NT$" +Class=USB +ClassGUID={36FC9E60-C465-11CF-8056-444553540000} +provider=%ORACLE% +DriverVer = 04/18/2026,7.2.8.23730 ; r173730 +CatalogFile=VBoxUSB.cat +PnpLockdown=1 + +[SourceDisksNames] +1=%VBoxUSB_DiskDesc%,,, + +[SourceDisksFiles] +VBoxUSB.sys = 1 + +[DestinationDirs] +DefaultDestDir = 12 + +[Manufacturer] +%ORACLE%=VBoxUSB,NTAMD64 + +[VBoxUSB.NTAMD64] +%VBoxUSB_DrvDesc%=VBoxUSB_Drv,USB\VID_80EE&PID_CAFE + +[VBoxUSB_Drv.NTAMD64] +CopyFiles=VBoxUSB_CopyFiles + +[VBoxUSB_Drv.NTAMD64.Services] +AddService=VBoxUSB,0x00000002,VBoxUSB_Service,VBoxUSB_AddReg + +[DefaultUninstall.NTAMD64.Services] +DelService = VBoxUSB,0x00000200 +DelReg = VBoxUSB_Registry +LegacyUninstall=1 + +[VBoxUSB_Service] +DisplayName = %VBoxUSB_SvcDesc% +ServiceType = %SERVICE_TYPE_KERNEL_DRIVER% +StartType = %SERVICE_STARTTYPE_DEMAND% +ErrorControl = %SERVICE_ERRORCTL_NORMAL% +ServiceBinary = %12%\VBoxUSB.sys +LoadOrderGroup = Base + +[VBoxUSB_AddReg] +AddReg = VBoxUSB_Registry + +[VBoxUSB_Registry] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,VBoxUSB.sys + +[VBoxUSB_CopyFiles] +VBoxUSB.sys + +[Strings] +ORACLE="Oracle Corporation" +VBoxUSB_SvcDesc="VirtualBox USB Service" +VBoxUSB_DrvDesc="VirtualBox USB Driver" +VBoxUSB_DiskDesc="VBoxUSB Installation Disk" + +; Useful constants +SERVICE_TYPE_KERNEL_DRIVER = 1 +SERVICE_STARTTYPE_BOOT = 0 +SERVICE_STARTTYPE_AUTO = 1 +SERVICE_STARTTYPE_DEMAND = 3 +SERVICE_ERRORCTL_IGNORE = 0 +SERVICE_ERRORCTL_NORMAL = 1 + diff --git a/common/vboxusb/assets/amd64/VBoxUSB.sys b/common/vboxusb/assets/amd64/VBoxUSB.sys new file mode 100644 index 0000000000000000000000000000000000000000..1efd42b81d9528fbe343f1537e6518ba05861647 GIT binary patch literal 182792 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 literal 0 HcmV?d00001 diff --git a/common/vboxusb/assets/amd64/VBoxUSBMon.sys b/common/vboxusb/assets/amd64/VBoxUSBMon.sys new file mode 100644 index 0000000000000000000000000000000000000000..4a689f9d0b33a182446b271e19eab2653ffa2ea8 GIT binary patch literal 197232 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 z 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 literal 0 HcmV?d00001 diff --git a/common/vboxusb/assets/arm64/VBoxUSB.cat b/common/vboxusb/assets/arm64/VBoxUSB.cat new file mode 100644 index 0000000000000000000000000000000000000000..e30b544fb80cb419b3c0b8347d3b68e00b0d1932 GIT binary patch literal 11927 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

4B8sJ;$BdJ#bm{)55DZN4U$+rQLiN~1}&J6|G^ z`od7)mq_0jLJ|oCBT@krr2cU7LV?1aG&Gg?2geNjDgz2RKQAiYI2D9=R0!EDVmZ@Y z`gz`)h2iK!f3KSUO(hx${tdaUq{E{oTW7BwbY*|(@g(HPCrK)@rQnoOCIP8el&5c{ zPmUT?-ldhgsK0#AS?p-9Sd^|q4D*9@g6J*ew0rGh^qgmd-skq~&hU6%6m5%o*_7=} zIh_eL>PWV(_5;piFEv+8{i5ctJe|IN;z(64d$_pot^#-!?KGqRLzI}O?VT=H z-hqq=S6*_;O#O7JMU;_knk{Gro4zb;u*^ws=c0>i3d3l_uFrJ(Oj&*;s>rW#M~<{C zxh%w@sXxz$?Xtr087J($S^e&cS#+zz*}{fLvT{|@cF6*XC<1~O{6>h9WLfy!fA>6X z6UV<|o_-{b2~Z<|>la_i-g~FMAw;vCumh}C> zA`k=^#P(C&l#;=It*qtTDuo=DCnb79K=N_Ws|z@i}{_>RBT7)-^_E#G zHv9HH6DQ$Bi?s;o#R8&*4&Tb+{?RL+Pt$uIo@aSoM)0=E&|FJloTfN@2IH>sK=St_ z6(!0ZmbYYZRv^rGGA*9o#8l14S1TATy&7j&q1acWAnTPSLy61~^)M2>45+iINde?mdF!Od|}nAwN? literal 0 HcmV?d00001 diff --git a/common/vboxusb/assets/arm64/VBoxUSB.inf b/common/vboxusb/assets/arm64/VBoxUSB.inf new file mode 100644 index 000000000..9acf2f26e --- /dev/null +++ b/common/vboxusb/assets/arm64/VBoxUSB.inf @@ -0,0 +1,103 @@ +; $Id: VBoxUSB.inf 170711 2025-09-29 16:57:21Z klaus $ +;; @file +; VBox host drivers - USB drivers - Win32 USB device +; + +; +; Copyright (C) 2011-2025 Oracle and/or its affiliates. +; +; This file is part of VirtualBox base platform packages, as +; available from https://www.virtualbox.org. +; +; This program is free software; you can redistribute it and/or +; modify it under the terms of the GNU General Public License +; as published by the Free Software Foundation, in version 3 of the +; License. +; +; This program is distributed in the hope that it will be useful, but +; WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +; General Public License for more details. +; +; You should have received a copy of the GNU General Public License +; along with this program; if not, see . +; +; The contents of this file may alternatively be used under the terms +; of the Common Development and Distribution License Version 1.0 +; (CDDL), a copy of it is provided in the "COPYING.CDDL" file included +; in the VirtualBox distribution, in which case the provisions of the +; CDDL are applicable instead of those of the GPL. +; +; You may elect to license modified versions of this file under the +; terms and conditions of either the GPL or the CDDL or both. +; +; SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 +; + +[Version] +Signature="$Windows NT$" +Class=USB +ClassGUID={36FC9E60-C465-11CF-8056-444553540000} +provider=%ORACLE% +DriverVer = 04/18/2026,7.2.8.23730 ; r173730 +CatalogFile=VBoxUSB.cat +PnpLockdown=1 + +[SourceDisksNames] +1=%VBoxUSB_DiskDesc%,,, + +[SourceDisksFiles] +VBoxUSB.sys = 1 + +[DestinationDirs] +DefaultDestDir = 12 + +[Manufacturer] +%ORACLE%=VBoxUSB,NTARM64 + +[VBoxUSB.NTARM64] +%VBoxUSB_DrvDesc%=VBoxUSB_Drv,USB\VID_80EE&PID_CAFE + +[VBoxUSB_Drv.NTARM64] +CopyFiles=VBoxUSB_CopyFiles + +[VBoxUSB_Drv.NTARM64.Services] +AddService=VBoxUSB,0x00000002,VBoxUSB_Service,VBoxUSB_AddReg + +[DefaultUninstall.NTARM64.Services] +DelService = VBoxUSB,0x00000200 +DelReg = VBoxUSB_Registry +LegacyUninstall=1 + +[VBoxUSB_Service] +DisplayName = %VBoxUSB_SvcDesc% +ServiceType = %SERVICE_TYPE_KERNEL_DRIVER% +StartType = %SERVICE_STARTTYPE_DEMAND% +ErrorControl = %SERVICE_ERRORCTL_NORMAL% +ServiceBinary = %12%\VBoxUSB.sys +LoadOrderGroup = Base + +[VBoxUSB_AddReg] +AddReg = VBoxUSB_Registry + +[VBoxUSB_Registry] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,VBoxUSB.sys + +[VBoxUSB_CopyFiles] +VBoxUSB.sys + +[Strings] +ORACLE="Oracle Corporation" +VBoxUSB_SvcDesc="VirtualBox USB Service" +VBoxUSB_DrvDesc="VirtualBox USB Driver" +VBoxUSB_DiskDesc="VBoxUSB Installation Disk" + +; Useful constants +SERVICE_TYPE_KERNEL_DRIVER = 1 +SERVICE_STARTTYPE_BOOT = 0 +SERVICE_STARTTYPE_AUTO = 1 +SERVICE_STARTTYPE_DEMAND = 3 +SERVICE_ERRORCTL_IGNORE = 0 +SERVICE_ERRORCTL_NORMAL = 1 + diff --git a/common/vboxusb/assets/arm64/VBoxUSB.sys b/common/vboxusb/assets/arm64/VBoxUSB.sys new file mode 100644 index 0000000000000000000000000000000000000000..8c6d3930537f6d3e44006e2d13b3d5a3b56902df GIT binary patch literal 180704 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

`OrEq*(L$nB($r6HhG~Wah@@Ux$EQ0pPt{( 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 literal 0 HcmV?d00001 diff --git a/common/vboxusb/assets/arm64/VBoxUSBMon.sys b/common/vboxusb/assets/arm64/VBoxUSBMon.sys new file mode 100644 index 0000000000000000000000000000000000000000..fd47da1a0597291e22c030a5852b1551a6df9635 GIT binary patch literal 195696 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 literal 0 HcmV?d00001 diff --git a/common/vboxusb/assets_windows_amd64.go b/common/vboxusb/assets_windows_amd64.go new file mode 100644 index 000000000..476324fe8 --- /dev/null +++ b/common/vboxusb/assets_windows_amd64.go @@ -0,0 +1,26 @@ +//go:build windows && amd64 + +package vboxusb + +import _ "embed" + +//go:embed assets/amd64/VBoxUSB.sys +var vboxUSBSys []byte + +//go:embed assets/amd64/VBoxUSB.inf +var vboxUSBInf []byte + +//go:embed assets/amd64/VBoxUSB.cat +var vboxUSBCat []byte + +//go:embed assets/amd64/VBoxUSBMon.sys +var vboxUSBMonSys []byte + +func assetFiles() []assetFile { + return []assetFile{ + {"VBoxUSB.sys", vboxUSBSys}, + {"VBoxUSB.inf", vboxUSBInf}, + {"VBoxUSB.cat", vboxUSBCat}, + {"VBoxUSBMon.sys", vboxUSBMonSys}, + } +} diff --git a/common/vboxusb/assets_windows_arm64.go b/common/vboxusb/assets_windows_arm64.go new file mode 100644 index 000000000..d0b6743c9 --- /dev/null +++ b/common/vboxusb/assets_windows_arm64.go @@ -0,0 +1,26 @@ +//go:build windows && arm64 + +package vboxusb + +import _ "embed" + +//go:embed assets/arm64/VBoxUSB.sys +var vboxUSBSys []byte + +//go:embed assets/arm64/VBoxUSB.inf +var vboxUSBInf []byte + +//go:embed assets/arm64/VBoxUSB.cat +var vboxUSBCat []byte + +//go:embed assets/arm64/VBoxUSBMon.sys +var vboxUSBMonSys []byte + +func assetFiles() []assetFile { + return []assetFile{ + {"VBoxUSB.sys", vboxUSBSys}, + {"VBoxUSB.inf", vboxUSBInf}, + {"VBoxUSB.cat", vboxUSBCat}, + {"VBoxUSBMon.sys", vboxUSBMonSys}, + } +} diff --git a/common/vboxusb/assets_windows_unsupported.go b/common/vboxusb/assets_windows_unsupported.go new file mode 100644 index 000000000..025e81947 --- /dev/null +++ b/common/vboxusb/assets_windows_unsupported.go @@ -0,0 +1,5 @@ +//go:build windows && !amd64 && !arm64 + +package vboxusb + +func assetFiles() []assetFile { return nil } diff --git a/common/vboxusb/device_windows.go b/common/vboxusb/device_windows.go new file mode 100644 index 000000000..d69091203 --- /dev/null +++ b/common/vboxusb/device_windows.go @@ -0,0 +1,310 @@ +//go:build windows + +package vboxusb + +import ( + "encoding/binary" + "errors" + "runtime" + "sync" + "unsafe" + + E "github.com/sagernet/sing/common/exceptions" + + "golang.org/x/sys/windows" +) + +// Device holds an open handle to one VBoxUSB-claimed USB device plus a +// private event for overlapped I/O. Methods are not safe for +// concurrent use on the same Device — the session layer serializes +// per-endpoint via per-endpoint goroutines. +type Device struct { + handle windows.Handle + event windows.Handle + closing sync.Once + closeErr error +} + +// OpenDevice opens a per-device VBoxUSB handle by its setupapi-resolved +// interface path (typically obtained via SetupDiEnumDeviceInterfaces +// over MonitorAccessGUID). The handle is opened FILE_FLAG_OVERLAPPED. +// FILE_SKIP_COMPLETION_PORT_ON_SUCCESS is set so synchronously +// completed URBs do not bounce through the IOCP — matches the +// usbipd-win fast path. +func OpenDevice(interfacePath string) (*Device, error) { + pathW, err := windows.UTF16PtrFromString(interfacePath) + if err != nil { + return nil, E.Cause(err, "vboxusb: utf16 device path") + } + handle, err := windows.CreateFile( + pathW, + windows.GENERIC_READ|windows.GENERIC_WRITE, + windows.FILE_SHARE_READ|windows.FILE_SHARE_WRITE, + nil, + windows.OPEN_EXISTING, + windows.FILE_ATTRIBUTE_NORMAL|windows.FILE_FLAG_OVERLAPPED, + 0, + ) + if err != nil { + return nil, E.Cause(err, "vboxusb: open ", interfacePath) + } + // Skip IOCP wakeup on synchronous completion. Tolerated on Windows + // 7+; ignore errors since the slow path still works. + _ = windows.SetFileCompletionNotificationModes(handle, windows.FILE_SKIP_COMPLETION_PORT_ON_SUCCESS) + event, err := windows.CreateEvent(nil, 1, 0, nil) + if err != nil { + windows.CloseHandle(handle) + return nil, E.Cause(err, "vboxusb: create event") + } + return &Device{handle: handle, event: event}, nil +} + +// Close releases the handle. Aborts any in-flight IOCTLs (they return +// ERROR_OPERATION_ABORTED). Idempotent. +func (d *Device) Close() error { + d.closing.Do(func() { + var errs []error + if d.handle != 0 { + err := windows.CloseHandle(d.handle) + if err != nil { + errs = append(errs, err) + } + d.handle = 0 + } + if d.event != 0 { + err := windows.CloseHandle(d.event) + if err != nil { + errs = append(errs, err) + } + d.event = 0 + } + d.closeErr = E.Errors(errs...) + }) + return d.closeErr +} + +// GetVersion returns the VBoxUSB driver version (8 bytes: major + minor). +// Call before Claim to verify the driver is at least DriverMajorVersion. +func (d *Device) GetVersion() (uint32, uint32, error) { + var buf [8]byte + _, err := d.ioctl(IOCTLGetVersion, nil, buf[:]) + if err != nil { + return 0, 0, E.Cause(err, "vboxusb: GET_VERSION") + } + return binary.LittleEndian.Uint32(buf[0:4]), binary.LittleEndian.Uint32(buf[4:8]), nil +} + +// Claim acquires exclusive ownership of the device. The driver returns +// Claimed=false if another handle owns the device. The input field is +// unused by the driver but the buffer must equal the output size, so +// pass a zero-initialized 2-byte input. +func (d *Device) Claim() (bool, error) { + var in [2]byte + var out [2]byte + _, err := d.ioctl(IOCTLUSBClaimDevice, in[:], out[:]) + if err != nil { + return false, E.Cause(err, "vboxusb: USB_CLAIM_DEVICE") + } + return out[1] != 0, nil +} + +// SetConfig issues USBSUP_IOCTL_USB_SET_CONFIG so VBoxUSB rebuilds its +// pipe-handle table for the requested bConfigurationValue. Must be +// awaited before any URBs targeting endpoints in the new configuration. +func (d *Device) SetConfig(value byte) error { + in := [1]byte{value} + _, err := d.ioctl(IOCTLUSBSetConfig, in[:], nil) + if err != nil { + return E.Cause(err, "vboxusb: USB_SET_CONFIG") + } + return nil +} + +// SelectInterface issues USBSUP_IOCTL_USB_SELECT_INTERFACE. Same +// pipe-handle implications as SetConfig. +func (d *Device) SelectInterface(num, alt byte) error { + in := [2]byte{num, alt} + _, err := d.ioctl(IOCTLUSBSelectInterface, in[:], nil) + if err != nil { + return E.Cause(err, "vboxusb: USB_SELECT_INTERFACE") + } + return nil +} + +// ClearEndpoint clears the STALL condition on a halted endpoint. The +// argument is the raw 8-bit address (direction bit in MSB). +func (d *Device) ClearEndpoint(rawEndpoint byte) error { + in := [1]byte{rawEndpoint} + _, err := d.ioctl(IOCTLUSBClearEndpoint, in[:], nil) + if err != nil { + return E.Cause(err, "vboxusb: USB_CLEAR_ENDPOINT") + } + return nil +} + +// AbortEndpoint aborts all pending submits on the given raw endpoint +// address. VBoxUSB has no per-URB cancel; callers must use the +// abort-holdoff heuristic to avoid aborting URBs that completed in the +// race window. +func (d *Device) AbortEndpoint(rawEndpoint byte) error { + in := [1]byte{rawEndpoint} + _, err := d.ioctl(IOCTLUSBAbortEndpoint, in[:], nil) + if err != nil { + return E.Cause(err, "vboxusb: USB_ABORT_ENDPOINT") + } + return nil +} + +// URB is the high-level form of USBSUP_URB. The session layer fills it +// and hands to SendURB; on return Length and IsoPackets carry the +// driver's response. Buffer must remain referenced by the caller until +// SendURB returns; SendURB internally calls runtime.KeepAlive. +type URB struct { + Type TransferType + Endpoint uint32 // 4-bit endpoint index, no direction bit + Direction Direction + Flags TransferFlags + Length uint64 + Buffer []byte + IsoPackets []IsoPacket +} + +// IsoPacket is one USBSUP_ISOCPKT entry. Length is in/out (requested +// then actual); Offset is in-only; Status is out-only. +type IsoPacket struct { + Length uint16 + Offset uint16 + Status URBError +} + +// URBResult mirrors the fields VBoxUSB writes back into the URB struct. +type URBResult struct { + Error URBError + Length uint64 + IsoPackets []IsoPacket +} + +// urbStructSize is the on-the-wire size of USBSUP_URB with Pack=4 on +// 64-bit systems (both amd64 and arm64; nint is 8 bytes either way). +// Layout (offsets in bytes): +// +// 0 type uint32 +// 4 ep uint32 +// 8 dir uint32 +// 12 flags uint32 +// 16 error uint32 +// 20 len uint64 +// 28 buf uint64 (native pointer) +// 36 numIsoPkts uint32 +// 40 aIsoPkts [8]uint64 (each entry is cb(u16) off(u16) stat(u32) = 8 bytes) +// +// Total = 104. +const urbStructSize = 104 + +// SendURB marshals urb into a USBSUP_URB, dispatches IOCTL_SEND_URB, +// and unmarshals the response back into urb.Length / urb.IsoPackets. +// Caller must keep urb.Buffer alive across the call (SendURB does so +// internally for the duration of the syscall). +func (d *Device) SendURB(urb *URB) error { + if len(urb.IsoPackets) > MaxIsoPacketsPerURB { + return E.New("vboxusb: too many iso packets: ", len(urb.IsoPackets), " > ", MaxIsoPacketsPerURB) + } + var raw [urbStructSize]byte + binary.LittleEndian.PutUint32(raw[0:4], uint32(urb.Type)) + binary.LittleEndian.PutUint32(raw[4:8], urb.Endpoint) + binary.LittleEndian.PutUint32(raw[8:12], uint32(urb.Direction)) + binary.LittleEndian.PutUint32(raw[12:16], uint32(urb.Flags)) + // raw[16:20] error is filled by the driver + binary.LittleEndian.PutUint64(raw[20:28], urb.Length) + var bufPtr uintptr + if len(urb.Buffer) > 0 { + bufPtr = uintptr(unsafe.Pointer(&urb.Buffer[0])) + } + binary.LittleEndian.PutUint64(raw[28:36], uint64(bufPtr)) + binary.LittleEndian.PutUint32(raw[36:40], uint32(len(urb.IsoPackets))) + for i, iso := range urb.IsoPackets { + base := 40 + i*8 + binary.LittleEndian.PutUint16(raw[base:base+2], iso.Length) + binary.LittleEndian.PutUint16(raw[base+2:base+4], iso.Offset) + binary.LittleEndian.PutUint32(raw[base+4:base+8], uint32(iso.Status)) + } + _, err := d.ioctl(IOCTLSendURB, raw[:], raw[:]) + runtime.KeepAlive(urb.Buffer) + if err != nil { + return E.Cause(err, "vboxusb: SEND_URB") + } + urb.Length = binary.LittleEndian.Uint64(raw[20:28]) + errCode := URBError(binary.LittleEndian.Uint32(raw[16:20])) + for i := range urb.IsoPackets { + base := 40 + i*8 + urb.IsoPackets[i].Length = binary.LittleEndian.Uint16(raw[base : base+2]) + urb.IsoPackets[i].Offset = binary.LittleEndian.Uint16(raw[base+2 : base+4]) + urb.IsoPackets[i].Status = URBError(binary.LittleEndian.Uint32(raw[base+4 : base+8])) + } + if errCode != URBOK { + // Surface the device-reported error through URB.Length on + // the caller side: it's already set to actual transferred + // bytes by the driver. Return a typed error so the engine + // layer can translate to a USBIP status. + return &URBStatusError{Code: errCode} + } + return nil +} + +// URBStatusError signals a USB-level failure reported by the driver +// (STALL, DNR, CRC, etc.) rather than a Windows-level IOCTL failure. +// The engine layer translates these into USBIP wire status. +type URBStatusError struct { + Code URBError +} + +func (e *URBStatusError) Error() string { + switch e.Code { + case URBStall: + return "vboxusb: URB stalled" + case URBDeviceNotResponding: + return "vboxusb: device not responding" + case URBCRCError: + return "vboxusb: CRC error" + case URBNACError: + return "vboxusb: NAC error" + case URBUnderrun: + return "vboxusb: data underrun" + case URBOverrun: + return "vboxusb: data overrun" + default: + return "vboxusb: unknown URB error" + } +} + +// ioctl is the single synchronous overlapped DeviceIoControl primitive. +// Ported from common/windivert/handle_windows.go:263-290. The event is +// the per-Device event (reused across calls) so we avoid CreateEvent on +// every URB. +func (d *Device) ioctl(code uint32, in []byte, out []byte) (uint32, error) { + var overlapped windows.Overlapped + overlapped.HEvent = d.event + _ = windows.ResetEvent(d.event) + var inPtr *byte + var inLen uint32 + if len(in) > 0 { + inPtr = &in[0] + inLen = uint32(len(in)) + } + var outPtr *byte + var outLen uint32 + if len(out) > 0 { + outPtr = &out[0] + outLen = uint32(len(out)) + } + var returned uint32 + err := windows.DeviceIoControl(d.handle, code, inPtr, inLen, outPtr, outLen, &returned, &overlapped) + if err != nil && !errors.Is(err, windows.ERROR_IO_PENDING) { + return 0, err + } + err = windows.GetOverlappedResult(d.handle, &overlapped, &returned, true) + if err != nil { + return 0, err + } + return returned, nil +} diff --git a/common/vboxusb/driver_windows.go b/common/vboxusb/driver_windows.go new file mode 100644 index 000000000..4853e7d38 --- /dev/null +++ b/common/vboxusb/driver_windows.go @@ -0,0 +1,260 @@ +//go:build windows + +package vboxusb + +import ( + "errors" + "os" + "path/filepath" + "runtime" + "strconv" + "sync" + "unsafe" + + E "github.com/sagernet/sing/common/exceptions" + + "golang.org/x/sys/windows" +) + +// EnsureDrivers extracts the bundled VBoxUSB + VBoxUSBMon binaries and +// makes both drivers available to PnP: +// +// 1. VBoxUSBMon is registered as a SERVICE_KERNEL_DRIVER demand-start +// service. The actual handle to \\.\VBoxUSBMon is opened separately +// via OpenMonitor. +// 2. VBoxUSB.inf is copied into the driver store via SetupCopyOEMInfW +// so PnP knows the driver exists; actual per-device binding is +// orchestrated later via VBoxUSBMon's ADD_FILTER mechanism. +// +// Requires Administrator (SeLoadDriverPrivilege). Safe to call from +// multiple processes concurrently; a named global mutex serializes +// the install. +func EnsureDrivers() error { + driverOnce.Do(func() { + driverErr = installDrivers() + }) + return driverErr +} + +var ( + driverOnce sync.Once + driverErr error +) + +func installDrivers() error { + if runtime.GOARCH != "amd64" && runtime.GOARCH != "arm64" { + return E.New("vboxusb: unsupported GOARCH ", runtime.GOARCH) + } + + dir, err := ensureExtracted() + if err != nil { + return err + } + + mutexName, _ := windows.UTF16PtrFromString("Global\\SingBoxVBoxUSBInstallMutex") + mutex, err := windows.CreateMutex(nil, false, mutexName) + if err != nil { + return E.Cause(err, "vboxusb: create install mutex") + } + defer windows.CloseHandle(mutex) + _, err = windows.WaitForSingleObject(mutex, windows.INFINITE) + if err != nil { + return E.Cause(err, "vboxusb: wait install mutex") + } + defer windows.ReleaseMutex(mutex) + + err = installMonitorService(dir) + if err != nil { + return err + } + err = installVBoxUSBInf(dir) + if err != nil { + return err + } + return nil +} + +func installMonitorService(dir string) error { + sysPath := filepath.Join(dir, "VBoxUSBMon.sys") + sysPathW, err := windows.UTF16PtrFromString(sysPath) + if err != nil { + return E.Cause(err, "vboxusb: utf16 monitor path") + } + + manager, err := windows.OpenSCManager(nil, nil, windows.SC_MANAGER_ALL_ACCESS) + if err != nil { + return E.Cause(err, "vboxusb: open SCM") + } + defer windows.CloseServiceHandle(manager) + + serviceNameW, _ := windows.UTF16PtrFromString(MonitorServiceName) + service, err := windows.OpenService(manager, serviceNameW, windows.SERVICE_ALL_ACCESS) + if err != nil { + service, err = windows.CreateService( + manager, + serviceNameW, + serviceNameW, + windows.SERVICE_ALL_ACCESS, + windows.SERVICE_KERNEL_DRIVER, + windows.SERVICE_DEMAND_START, + windows.SERVICE_ERROR_NORMAL, + sysPathW, + nil, nil, nil, nil, nil, + ) + if err != nil { + if errors.Is(err, windows.ERROR_SERVICE_EXISTS) { + service, err = windows.OpenService(manager, serviceNameW, windows.SERVICE_ALL_ACCESS) + } + if err != nil { + return wrapInstallError(err) + } + } + } + defer windows.CloseServiceHandle(service) + + err = windows.StartService(service, 0, nil) + if err != nil && errors.Is(err, windows.ERROR_SERVICE_DISABLED) { + // A prior process called DeleteService on a still-loaded + // driver: SCM marks the record for deletion and flips + // START_TYPE to DISABLED until the last handle closes. + // Re-enable so we can start instead of waiting for a reboot. + err = windows.ChangeServiceConfig( + service, + windows.SERVICE_NO_CHANGE, + windows.SERVICE_DEMAND_START, + windows.SERVICE_NO_CHANGE, + nil, nil, nil, nil, nil, nil, nil, + ) + if err != nil { + return E.Cause(err, "vboxusb: re-enable disabled monitor service") + } + err = windows.StartService(service, 0, nil) + } + if err != nil && !errors.Is(err, windows.ERROR_SERVICE_ALREADY_RUNNING) { + return E.Cause(err, "vboxusb: start monitor service") + } + return nil +} + +func wrapInstallError(err error) error { + if errors.Is(err, windows.ERROR_ACCESS_DENIED) { + return E.Cause(err, "vboxusb: installing the kernel driver requires Administrator privileges") + } + return E.Cause(err, "vboxusb: create monitor service") +} + +// installVBoxUSBInf copies VBoxUSB.inf into the Windows driver store +// via SetupCopyOEMInfW so PnP knows the driver is available. The +// actual per-device binding is triggered later by VBoxUSBMon's +// ADD_FILTER + a port cycle. +// +// SetupCopyOEMInfW is not exposed by golang.org/x/sys/windows, so we +// resolve it manually via the setupapi DLL. +func installVBoxUSBInf(dir string) error { + infPath := filepath.Join(dir, "VBoxUSB.inf") + infPathW, err := windows.UTF16PtrFromString(infPath) + if err != nil { + return E.Cause(err, "vboxusb: utf16 inf path") + } + dirW, err := windows.UTF16PtrFromString(dir) + if err != nil { + return E.Cause(err, "vboxusb: utf16 inf dir") + } + const ( + spostPath = 1 // SPOST_PATH + spCopyNoStyle = 0 + ) + ret, _, callErr := procSetupCopyOEMInfW.Call( + uintptr(unsafe.Pointer(infPathW)), + uintptr(unsafe.Pointer(dirW)), + uintptr(spostPath), + uintptr(spCopyNoStyle), + 0, 0, 0, 0, + ) + if ret == 0 { + if errors.Is(callErr, windows.ERROR_FILE_EXISTS) { + // Already present in driver store; not an error. + return nil + } + return E.Cause(callErr, "vboxusb: SetupCopyOEMInfW") + } + return nil +} + +var ( + modSetupAPI = windows.NewLazyDLL("setupapi.dll") + procSetupCopyOEMInfW = modSetupAPI.NewProc("SetupCopyOEMInfW") +) + +type assetFile struct { + name string + data []byte +} + +var ( + extractOnce sync.Once + extractErr error + extractDir string +) + +// The on-disk copy is protected by Authenticode signature enforcement +// at SCM StartService time; any tampering with the .sys is rejected +// by the kernel loader before we ever see it. +func ensureExtracted() (string, error) { + extractOnce.Do(func() { + extractDir, extractErr = extractImpl() + }) + return extractDir, extractErr +} + +func extractImpl() (string, error) { + files := assetFiles() + if len(files) == 0 { + return "", E.New("vboxusb: unsupported architecture ", runtime.GOARCH) + } + base, err := os.UserCacheDir() + if err != nil { + return "", E.Cause(err, "vboxusb: locate user cache dir") + } + dir := filepath.Join(base, "sing-box", "vboxusb", "v"+AssetVersion) + err = os.MkdirAll(dir, 0o755) + if err != nil { + return "", E.Cause(err, "vboxusb: mkdir ", dir) + } + for _, asset := range files { + err = ensureAsset(dir, asset) + if err != nil { + return "", err + } + } + return dir, nil +} + +// Concurrent sing-box processes race on os.Rename (atomic on NTFS); +// whichever wins creates the final file. Writers that lose the race +// silently discard their temp copy. +func ensureAsset(dir string, asset assetFile) error { + target := filepath.Join(dir, asset.name) + _, err := os.Stat(target) + if err == nil { + return nil + } + if !os.IsNotExist(err) { + return E.Cause(err, "vboxusb: stat ", asset.name) + } + tmp := target + ".tmp-" + strconv.Itoa(os.Getpid()) + err = os.WriteFile(tmp, asset.data, 0o644) + if err != nil { + return E.Cause(err, "vboxusb: write ", asset.name) + } + err = os.Rename(tmp, target) + if err != nil { + os.Remove(tmp) + _, statErr := os.Stat(target) + if statErr == nil { + return nil + } + return E.Cause(err, "vboxusb: rename ", asset.name) + } + return nil +} diff --git a/common/vboxusb/monitor_windows.go b/common/vboxusb/monitor_windows.go new file mode 100644 index 000000000..63ef3edc7 --- /dev/null +++ b/common/vboxusb/monitor_windows.go @@ -0,0 +1,216 @@ +//go:build windows + +package vboxusb + +import ( + "encoding/binary" + "errors" + "sync" + + E "github.com/sagernet/sing/common/exceptions" + + "golang.org/x/sys/windows" +) + +// Monitor is a handle to \\.\VBoxUSBMon. It is shared across the +// process (one global monitor handle per sing-box server); per-device +// filters are added/removed against it. Concurrent ADD_FILTER / +// REMOVE_FILTER calls are serialized inside the driver but our handle +// reuses a single overlapped event — so Monitor methods are not safe +// for concurrent use across goroutines. The caller (the export host) +// is expected to serialize. +type Monitor struct { + handle windows.Handle + event windows.Handle + closing sync.Once + closeErr error +} + +// OpenMonitor opens \\.\VBoxUSBMon. EnsureDrivers must have been +// called first (and must have succeeded) so the VBoxUSBMon kernel +// service is loaded; otherwise CreateFile returns FILE_NOT_FOUND. +func OpenMonitor() (*Monitor, error) { + pathW, err := windows.UTF16PtrFromString(MonitorDevicePath) + if err != nil { + return nil, E.Cause(err, "vboxusb: utf16 monitor path") + } + handle, err := windows.CreateFile( + pathW, + windows.GENERIC_READ|windows.GENERIC_WRITE, + windows.FILE_SHARE_READ|windows.FILE_SHARE_WRITE, + nil, + windows.OPEN_EXISTING, + windows.FILE_ATTRIBUTE_NORMAL|windows.FILE_FLAG_OVERLAPPED, + 0, + ) + if err != nil { + if errors.Is(err, windows.ERROR_FILE_NOT_FOUND) { + return nil, E.Cause(err, "vboxusb: open monitor (driver not loaded?)") + } + if errors.Is(err, windows.ERROR_ACCESS_DENIED) { + return nil, E.Cause(err, "vboxusb: open monitor (administrator required)") + } + return nil, E.Cause(err, "vboxusb: open monitor") + } + event, err := windows.CreateEvent(nil, 1, 0, nil) + if err != nil { + windows.CloseHandle(handle) + return nil, E.Cause(err, "vboxusb: create monitor event") + } + return &Monitor{handle: handle, event: event}, nil +} + +func (m *Monitor) Close() error { + m.closing.Do(func() { + var errs []error + if m.handle != 0 { + err := windows.CloseHandle(m.handle) + if err != nil { + errs = append(errs, err) + } + m.handle = 0 + } + if m.event != 0 { + err := windows.CloseHandle(m.event) + if err != nil { + errs = append(errs, err) + } + m.event = 0 + } + m.closeErr = E.Errors(errs...) + }) + return m.closeErr +} + +// GetVersion returns the monitor driver version (8 bytes packed: +// major + minor). Reject if major mismatches DriverMajorVersion. +func (m *Monitor) GetVersion() (uint32, uint32, error) { + var buf [8]byte + _, err := m.ioctl(IOCTLMonitorGetVersion, nil, buf[:]) + if err != nil { + return 0, 0, E.Cause(err, "vboxusb: monitor GET_VERSION") + } + return binary.LittleEndian.Uint32(buf[0:4]), binary.LittleEndian.Uint32(buf[4:8]), nil +} + +// AddFilter installs a one-shot filter that captures the next PnP +// arrival matching the filter. Returns a filter id that must be passed +// to RemoveFilter on detach. usbipd-win uses a permanent CAPTURE +// filter; we follow the same pattern so the filter survives transient +// PnP retries during RestartingDevice. +func (m *Monitor) AddFilter(filter Filter) (uint64, error) { + in := encodeFilter(filter) + var out [12]byte // UsbSupFltAddOut: uint64 uId + int32 rc + _, err := m.ioctl(IOCTLMonitorAddFilter, in[:], out[:]) + if err != nil { + return 0, E.Cause(err, "vboxusb: monitor ADD_FILTER") + } + id := binary.LittleEndian.Uint64(out[0:8]) + rc := int32(binary.LittleEndian.Uint32(out[8:12])) + if rc < 0 { + return 0, E.New("vboxusb: monitor ADD_FILTER returned rc=", rc) + } + return id, nil +} + +// RemoveFilter releases a filter previously returned by AddFilter. +// Safe to call after the device has already left. +func (m *Monitor) RemoveFilter(id uint64) error { + var in [8]byte + binary.LittleEndian.PutUint64(in[:], id) + _, err := m.ioctl(IOCTLMonitorRemoveFilter, in[:], nil) + if err != nil { + return E.Cause(err, "vboxusb: monitor REMOVE_FILTER") + } + return nil +} + +func (m *Monitor) ioctl(code uint32, in []byte, out []byte) (uint32, error) { + var overlapped windows.Overlapped + overlapped.HEvent = m.event + _ = windows.ResetEvent(m.event) + var inPtr *byte + var inLen uint32 + if len(in) > 0 { + inPtr = &in[0] + inLen = uint32(len(in)) + } + var outPtr *byte + var outLen uint32 + if len(out) > 0 { + outPtr = &out[0] + outLen = uint32(len(out)) + } + var returned uint32 + err := windows.DeviceIoControl(m.handle, code, inPtr, inLen, outPtr, outLen, &returned, &overlapped) + if err != nil && !errors.Is(err, windows.ERROR_IO_PENDING) { + return 0, err + } + err = windows.GetOverlappedResult(m.handle, &overlapped, &returned, true) + if err != nil { + return 0, err + } + return returned, nil +} + +// encodeFilter builds a 312-byte USBFILTER packed struct matching the +// layout in VirtualBox usbfilter.h (also documented in +// /tmp/usbipd-win/Usbipd/Interop/VBoxUsbMon.cs:77-105). +// +// Layout (offsets): +// +// 0 u32Magic uint32 (0x19670408) +// 4 enmType uint32 (5 = CAPTURE) +// 8 aFields [11]{enmMatch uint16, u16Value uint16} (44 bytes) +// 52 offCurEnd uint32 (0) +// 56 achStrTab [256]byte (0) +// +// All entries default to IGNORE; caller-specified fields are upgraded +// to NUM_EXACT with the supplied value. String matches and offCurEnd +// stay zero (we never use string filters; the driver rejects nonzero +// offCurEnd with strange offsets). +func encodeFilter(f Filter) [312]byte { + const ( + filterMagic uint32 = 0x19670408 + filterCapture uint32 = 5 // UsbFilterType.CAPTURE + matchIgnore uint16 = 1 // UsbFilterMatch.IGNORE + matchNumExact uint16 = 3 // UsbFilterMatch.NUM_EXACT + ) + const ( + idxVendorID = 0 + idxProductID = 1 + idxDeviceRev = 2 + idxDeviceClass = 3 + idxBus = 6 + idxPort = 7 + ) + var raw [312]byte + binary.LittleEndian.PutUint32(raw[0:4], filterMagic) + binary.LittleEndian.PutUint32(raw[4:8], filterCapture) + for i := 0; i < 11; i++ { + binary.LittleEndian.PutUint16(raw[8+i*4:8+i*4+2], matchIgnore) + } + setField := func(idx int, value uint16) { + binary.LittleEndian.PutUint16(raw[8+idx*4:8+idx*4+2], matchNumExact) + binary.LittleEndian.PutUint16(raw[8+idx*4+2:8+idx*4+4], value) + } + if f.VendorID != nil { + setField(idxVendorID, *f.VendorID) + } + if f.ProductID != nil { + setField(idxProductID, *f.ProductID) + } + if f.DeviceRev != nil { + setField(idxDeviceRev, *f.DeviceRev) + } + if f.DeviceClass != nil { + setField(idxDeviceClass, *f.DeviceClass) + } + if f.Bus != nil { + setField(idxBus, *f.Bus) + } + if f.Port != nil { + setField(idxPort, *f.Port) + } + return raw +} diff --git a/common/vboxusb/pnp_windows.go b/common/vboxusb/pnp_windows.go new file mode 100644 index 000000000..b4ed12e34 --- /dev/null +++ b/common/vboxusb/pnp_windows.go @@ -0,0 +1,265 @@ +//go:build windows + +package vboxusb + +import ( + "encoding/binary" + "errors" + "strconv" + "strings" + "sync" + "time" + "unsafe" + + E "github.com/sagernet/sing/common/exceptions" + + "golang.org/x/sys/windows" +) + +// USBDeviceInfo describes one USB device enumerated by Windows +// regardless of which function driver currently owns it. Bus/Address +// values are normalized into a stable bus-id string ("-

") +// matching Linux usbip conventions. +type USBDeviceInfo struct { + InstanceID string + HardwareID string + VendorID uint16 + ProductID uint16 + Revision uint16 + BusNumber uint32 + Address uint32 // device address on the bus (port path leaf) + BusID string // "-
" + DeviceClass uint8 +} + +// EnumerateUSBDevices walks GUID_DEVINTERFACE_USB_DEVICE and returns +// one record per attached USB device. Hubs are not filtered out here; +// the caller (export host) skips DeviceClass == 0x09. +func EnumerateUSBDevices() ([]USBDeviceInfo, error) { + devInfo, err := windows.SetupDiGetClassDevsEx( + &windows.GUID{ + Data1: USBDeviceInterfaceGUID.Data1, + Data2: USBDeviceInterfaceGUID.Data2, + Data3: USBDeviceInterfaceGUID.Data3, + Data4: USBDeviceInterfaceGUID.Data4, + }, + "", + 0, + windows.DIGCF_PRESENT|windows.DIGCF_DEVICEINTERFACE, + 0, + "", + ) + if err != nil { + return nil, E.Cause(err, "vboxusb: SetupDiGetClassDevsEx") + } + defer devInfo.Close() + + var out []USBDeviceInfo + for i := 0; ; i++ { + data, err := windows.SetupDiEnumDeviceInfo(devInfo, i) + if err != nil { + if errors.Is(err, windows.ERROR_NO_MORE_ITEMS) { + break + } + return nil, E.Cause(err, "vboxusb: SetupDiEnumDeviceInfo[", i, "]") + } + info := USBDeviceInfo{} + info.InstanceID, err = windows.SetupDiGetDeviceInstanceId(devInfo, data) + if err != nil { + continue + } + hardwareIDValue, err := windows.SetupDiGetDeviceRegistryProperty(devInfo, data, windows.SPDRP_HARDWAREID) + if err == nil { + info.HardwareID = firstString(hardwareIDValue) + info.VendorID, info.ProductID, info.Revision = parseHardwareID(info.HardwareID) + } + busNumberValue, err := windows.SetupDiGetDeviceRegistryProperty(devInfo, data, windows.SPDRP_BUSNUMBER) + if err == nil { + info.BusNumber = toUint32(busNumberValue) + } + addressValue, err := windows.SetupDiGetDeviceRegistryProperty(devInfo, data, windows.SPDRP_ADDRESS) + if err == nil { + info.Address = toUint32(addressValue) + } + info.BusID = strconv.FormatUint(uint64(info.BusNumber), 10) + "-" + strconv.FormatUint(uint64(info.Address), 10) + out = append(out, info) + } + return out, nil +} + +// CycleHubPort issues IOCTL_USB_HUB_CYCLE_PORT on the parent hub for +// the given 1-based port number. This is the supported equivalent of +// physically unplugging and replugging the device; combined with a +// VBoxUSBMon filter it triggers PnP to bind VBoxUSB to the device. +// +// hubInterfacePath is the setupapi-resolved interface path of the +// parent hub (obtained via CM_Get_Device_Interface_List with +// USBHubInterfaceGUID). +func CycleHubPort(hubInterfacePath string, port uint32) error { + pathW, err := windows.UTF16PtrFromString(hubInterfacePath) + if err != nil { + return E.Cause(err, "vboxusb: utf16 hub path") + } + handle, err := windows.CreateFile( + pathW, + windows.GENERIC_READ|windows.GENERIC_WRITE, + windows.FILE_SHARE_READ|windows.FILE_SHARE_WRITE, + nil, + windows.OPEN_EXISTING, + windows.FILE_ATTRIBUTE_NORMAL, + 0, + ) + if err != nil { + return E.Cause(err, "vboxusb: open hub ", hubInterfacePath) + } + defer windows.CloseHandle(handle) + + // USB_CYCLE_PORT_PARAMS: ULONG ConnectionIndex; ULONG StatusReturned; + var params [8]byte + binary.LittleEndian.PutUint32(params[0:4], port) + var returned uint32 + err = windows.DeviceIoControl( + handle, + IOCTLHubCyclePort, + ¶ms[0], uint32(len(params)), + ¶ms[0], uint32(len(params)), + &returned, nil, + ) + if err != nil { + return E.Cause(err, "vboxusb: IOCTL_USB_HUB_CYCLE_PORT") + } + return nil +} + +// WaitForVBoxUSBInterface polls CM_Get_Device_Interface_List for the +// VBoxUSB class GUID until an interface path matching instanceID +// appears, or timeout elapses. After RestartDevice + filter trigger, +// PnP needs a moment to load VBoxUSB.sys on the device; matching +// usbipd-win's 10-second window. +func WaitForVBoxUSBInterface(instanceID string, timeout time.Duration) (string, error) { + guid := windows.GUID{ + Data1: MonitorAccessGUID.Data1, + Data2: MonitorAccessGUID.Data2, + Data3: MonitorAccessGUID.Data3, + Data4: MonitorAccessGUID.Data4, + } + deadline := time.Now().Add(timeout) + for { + paths, err := windows.CM_Get_Device_Interface_List(instanceID, &guid, windows.CM_GET_DEVICE_INTERFACE_LIST_PRESENT) + if err == nil { + for _, p := range paths { + if p != "" { + return p, nil + } + } + } + if time.Now().After(deadline) { + return "", E.New("vboxusb: VBoxUSB interface for ", instanceID, " did not appear within ", timeout) + } + time.Sleep(100 * time.Millisecond) + } +} + +// RestartDevice triggers the PnP unplug/replug cycle that lets a +// pending VBoxUSBMon CAPTURE filter activate. usbipd-win uses +// CM_Query_And_Remove_SubTree -> IOCTL_USB_HUB_CYCLE_PORT -> +// CM_Setup_DevNode. +// +// TODO(phase B follow-up): CM_Query_And_Remove_SubTree and +// CM_Setup_DevNode are not exposed by golang.org/x/sys/windows and +// need direct LazyDLL wrappers. Until that is in place, callers +// should arrange for the device to be physically replugged. +func RestartDevice(_ string) error { + return E.New("vboxusb: RestartDevice not yet implemented (use CycleHubPort for now)") +} + +// WatchDeviceArrival registers a callback for device arrival/removal +// on GUID_DEVINTERFACE_USB_DEVICE. Returns a handle that must be +// closed when the watcher is no longer needed. +// +// TODO(phase B follow-up): CM_Register_Notification is not exposed by +// golang.org/x/sys/windows. Until wired up, the export host will need +// to poll via EnumerateUSBDevices on a reconcile timer. +func WatchDeviceArrival(_ func()) (DeviceWatcher, error) { + return nil, E.New("vboxusb: WatchDeviceArrival not yet implemented (poll EnumerateUSBDevices instead)") +} + +// DeviceWatcher is the handle returned by WatchDeviceArrival. Close +// stops delivery and releases the underlying CM_Notify_HNOTIFICATION. +type DeviceWatcher interface { + Close() error +} + +// firstString returns the first NUL-separated string in a REG_MULTI_SZ +// value (returned by SetupDiGetDeviceRegistryProperty for HardwareID). +// Returns the value unchanged for REG_SZ. +func firstString(value any) string { + switch v := value.(type) { + case string: + return v + case []string: + if len(v) > 0 { + return v[0] + } + } + return "" +} + +func toUint32(value any) uint32 { + switch v := value.(type) { + case uint32: + return v + case uint64: + return uint32(v) + } + return 0 +} + +// parseHardwareID extracts VID/PID/REV from a USB hardware ID such as +// "USB\VID_046D&PID_C31C&REV_6400". Returns zeros on parse failure; +// the caller decides whether that disqualifies the device. +func parseHardwareID(hwid string) (vid, pid, rev uint16) { + upper := strings.ToUpper(hwid) + vid = extractHex16(upper, "VID_") + pid = extractHex16(upper, "PID_") + rev = extractHex16(upper, "REV_") + return +} + +func extractHex16(s, prefix string) uint16 { + idx := strings.Index(s, prefix) + if idx < 0 { + return 0 + } + tail := s[idx+len(prefix):] + end := len(tail) + for i, r := range tail { + if !isHex(r) { + end = i + break + } + } + if end == 0 { + return 0 + } + v, err := strconv.ParseUint(tail[:end], 16, 16) + if err != nil { + return 0 + } + return uint16(v) +} + +func isHex(r rune) bool { + return (r >= '0' && r <= '9') || (r >= 'A' && r <= 'F') || (r >= 'a' && r <= 'f') +} + +// pnpProcOnce + LazyProc handles for direct syscall to functions that +// golang.org/x/sys/windows does not yet wrap. Kept in one place so the +// RestartDevice / WatchDeviceArrival follow-up has the resolver +// boilerplate already laid out. +var ( + pnpProcOnce sync.Once + modCfgMgr32 = windows.NewLazyDLL("cfgmgr32.dll") + _ = modCfgMgr32 // referenced by upcoming RestartDevice impl + _ unsafe.Pointer +) diff --git a/common/vboxusb/privilege_windows.go b/common/vboxusb/privilege_windows.go new file mode 100644 index 000000000..dceef76fa --- /dev/null +++ b/common/vboxusb/privilege_windows.go @@ -0,0 +1,56 @@ +//go:build windows + +package vboxusb + +import ( + "sync" + + E "github.com/sagernet/sing/common/exceptions" + + "golang.org/x/sys/windows" +) + +// EnableLoadDriverPrivilege flips SeLoadDriverPrivilege ON in the +// current process token. Required to open \\.\VBoxUSBMon and to drive +// PnP install/uninstall flows; non-interactive services have it +// disabled by default. Idempotent. +func EnableLoadDriverPrivilege() error { + loadDriverPrivOnce.Do(func() { + loadDriverPrivErr = enableLoadDriverPrivilege() + }) + return loadDriverPrivErr +} + +var ( + loadDriverPrivOnce sync.Once + loadDriverPrivErr error +) + +func enableLoadDriverPrivilege() error { + var token windows.Token + err := windows.OpenProcessToken(windows.CurrentProcess(), windows.TOKEN_ADJUST_PRIVILEGES|windows.TOKEN_QUERY, &token) + if err != nil { + return E.Cause(err, "vboxusb: open process token") + } + defer token.Close() + + privName, _ := windows.UTF16PtrFromString("SeLoadDriverPrivilege") + var luid windows.LUID + err = windows.LookupPrivilegeValue(nil, privName, &luid) + if err != nil { + return E.Cause(err, "vboxusb: lookup SeLoadDriverPrivilege") + } + + tp := windows.Tokenprivileges{ + PrivilegeCount: 1, + Privileges: [1]windows.LUIDAndAttributes{{ + Luid: luid, + Attributes: windows.SE_PRIVILEGE_ENABLED, + }}, + } + err = windows.AdjustTokenPrivileges(token, false, &tp, 0, nil, nil) + if err != nil { + return E.Cause(err, "vboxusb: adjust token privileges") + } + return nil +} diff --git a/common/vboxusb/vboxusb.go b/common/vboxusb/vboxusb.go new file mode 100644 index 000000000..77c319934 --- /dev/null +++ b/common/vboxusb/vboxusb.go @@ -0,0 +1,175 @@ +// Package vboxusb provides a Go binding for Oracle's VBoxUSB + +// VBoxUSBMon kernel drivers on Windows (amd64 and arm64), packaged +// for embedding in sing-box. +// +// The driver pair is shipped verbatim from dorssel/usbipd-win, which +// in turn carries the binaries unchanged from upstream VirtualBox. +// VBoxUSB.sys provides per-device user-space URB submission via +// SUPUSB_IOCTL_* IOCTLs; VBoxUSBMon.sys is the system-wide monitor +// that arranges for VBoxUSB to bind matching devices on PnP arrival. +// +// Administrator is required for the first Open in a process so SCM +// can load VBoxUSBMon. The drivers are Microsoft-signed via Oracle's +// VirtualBox publishing chain; we never re-sign or modify them. +// +// Upstream: +// - https://github.com/dorssel/usbipd-win (driver packaging) +// - https://github.com/VirtualBox/VirtualBox (driver source) +// +// License: GPLv2-or-later (drivers) and GPLv3 (this binding); see +// assets/*.license files for the per-asset SPDX records. +package vboxusb + +// AssetVersion identifies the bundled VBoxUSB driver release. Bumped +// in lock-step with the .sys files copied from +// /tmp/usbipd-win/Drivers/{x64,arm64}/. The on-disk extraction path +// (and SCM service version reuse) is keyed on this string, so a +// version bump triggers re-extraction. +const AssetVersion = "7.2.8.23730" + +// DriverVersion enforces the minimum acceptable VBoxUSB/VBoxUSBMon +// driver major version reported via GET_VERSION. Mirrors usbipd-win's +// USBDRV_MAJOR_VERSION / USBMON_MAJOR_VERSION (both 5). +const ( + DriverMajorVersion = 5 + DriverMinorVersion = 0 +) + +// Driver and device names. The Windows side opens the monitor via +// CreateFile(MonitorDevicePath); per-device VBoxUSB handles are opened +// via SetupDi-resolved interface paths under the GUID below. +const ( + MonitorServiceName = "VBoxUSBMon" + MonitorDevicePath = `\\.\VBoxUSBMon` +) + +// MonitorAccessGUID is GUID_CLASS_VBOXUSB from VirtualBox usblib-win.h. +// Used with SetupDiEnumDeviceInterfaces to find the per-device file +// path after VBoxUSB binds. +var MonitorAccessGUID = GUID{ + Data1: 0x00873fdf, + Data2: 0xCAFE, + Data3: 0x80EE, + Data4: [8]byte{0xaa, 0x5e, 0x00, 0xc0, 0x4f, 0xb1, 0x72, 0x0b}, +} + +// USBDeviceInterfaceGUID is GUID_DEVINTERFACE_USB_DEVICE +// ({a5dcbf10-6530-11d2-901f-00c04fb951ed}). Used to enumerate plugged +// USB devices regardless of which function driver currently owns them. +var USBDeviceInterfaceGUID = GUID{ + Data1: 0xa5dcbf10, + Data2: 0x6530, + Data3: 0x11d2, + Data4: [8]byte{0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xed}, +} + +// USBHubInterfaceGUID is GUID_DEVINTERFACE_USB_HUB +// ({f18a0e88-c30c-11d0-8815-00a0c906bed8}). The parent hub of a target +// device is opened with this GUID to issue IOCTL_USB_HUB_CYCLE_PORT. +var USBHubInterfaceGUID = GUID{ + Data1: 0xf18a0e88, + Data2: 0xc30c, + Data3: 0x11d0, + Data4: [8]byte{0x88, 0x15, 0x00, 0xa0, 0xc9, 0x06, 0xbe, 0xd8}, +} + +// GUID matches the Windows GUID layout exactly. We carry our own copy +// so the (cross-platform) package-level vars above can be declared +// without depending on golang.org/x/sys/windows. +type GUID struct { + Data1 uint32 + Data2 uint16 + Data3 uint16 + Data4 [8]byte +} + +// IOCTL codes from VirtualBox usblib-win.h, identical to those used by +// usbipd-win (Usbipd/Interop/VBoxUsb.cs:26-39 and VBoxUsbMon.cs:122-129). +// Encoding is the standard CTL_CODE shape: +// +// (DeviceType << 16) | (Access << 14) | (Function << 2) | Method +// +// DeviceType = FILE_DEVICE_UNKNOWN (0x22), Access = FILE_WRITE_ACCESS (2), +// Method = METHOD_BUFFERED (0). +const ( + // Per-device VBoxUSB.sys (\\?\). + IOCTLSendURB uint32 = 0x0022_181C // function 0x607 + IOCTLUSBSelectInterface uint32 = 0x0022_1824 // function 0x609 + IOCTLUSBSetConfig uint32 = 0x0022_1828 // function 0x60a + IOCTLUSBClaimDevice uint32 = 0x0022_182C // function 0x60b + IOCTLUSBClearEndpoint uint32 = 0x0022_1838 // function 0x60e + IOCTLGetVersion uint32 = 0x0022_183C // function 0x60f + IOCTLUSBAbortEndpoint uint32 = 0x0022_1840 // function 0x610 + + // VBoxUSBMon (\\.\VBoxUSBMon). Note GET_VERSION shares the numeric + // code with VBoxUSB's USB_ABORT_ENDPOINT — different handles. + IOCTLMonitorGetVersion uint32 = 0x0022_1840 + IOCTLMonitorAddFilter uint32 = 0x0022_1844 + IOCTLMonitorRemoveFilter uint32 = 0x0022_1848 +) + +// IOCTLHubCyclePort = IOCTL_USB_HUB_CYCLE_PORT from usbioctl.h +// (FILE_DEVICE_USB=0x22, FILE_ANY_ACCESS=0, function=0x111, +// METHOD_BUFFERED=0). +const IOCTLHubCyclePort uint32 = 0x0022_0444 + +// USB/IP-style transfer type enum, matching VirtualBox USBSUP_TRANSFER_TYPE. +type TransferType uint32 + +const ( + TransferTypeControl TransferType = iota + TransferTypeIso + TransferTypeBulk + TransferTypeInterrupt + TransferTypeMessage // control with setup packet inline +) + +// Direction matches USBSUP_DIRECTION. +type Direction uint32 + +const ( + DirectionSetup Direction = iota + DirectionIn + DirectionOut +) + +// TransferFlags matches USBSUP_XFER_FLAG. ShortOK is required for IN +// transfers unless the USB/IP request flags include URB_SHORT_NOT_OK. +type TransferFlags uint32 + +const ( + TransferFlagNone TransferFlags = 0 + TransferFlagShortOK TransferFlags = 1 << 0 +) + +// URBError mirrors USBSUP_ERROR. The session layer maps these into +// USBIP-wire-format status (negated Linux errno). +type URBError uint32 + +const ( + URBOK URBError = iota + URBStall + URBDeviceNotResponding + URBCRCError + URBNACError + URBUnderrun + URBOverrun +) + +// MaxIsoPacketsPerURB is the hard VBoxUSB limit (USBSUP_URB.aIsoPkts +// is sized for 8 entries). Callers with more iso packets must split +// into multiple URBs sharing one pinned buffer; offsets must stay +// within ushort range. +const MaxIsoPacketsPerURB = 8 + +// Filter is a logical builder for VBoxUSBMon ADD_FILTER. The Go side +// owns the byte layout (in monitor_windows.go) so callers see a clean +// API even though the on-the-wire struct is fixed-size packed. +type Filter struct { + VendorID *uint16 + ProductID *uint16 + DeviceRev *uint16 + Bus *uint16 + Port *uint16 + DeviceClass *uint16 +} diff --git a/service/usbip/data_protocol.go b/service/usbip/data_protocol.go index 8d82d72cb..d5828d4b3 100644 --- a/service/usbip/data_protocol.go +++ b/service/usbip/data_protocol.go @@ -26,6 +26,7 @@ const ( maxUSBIPIsoPackets = 1024 nonIsoPacketCount = -1 usbipTransferFlagIsoASAP = 0x0002 + usbipStatusEIO = -5 usbipStatusECONNRESET = -104 ) diff --git a/service/usbip/engine_darwin.go b/service/usbip/engine_darwin.go new file mode 100644 index 000000000..bc10fb77e --- /dev/null +++ b/service/usbip/engine_darwin.go @@ -0,0 +1,39 @@ +//go:build darwin && cgo + +package usbip + +// darwinIOUSBHostEngine drives one captured IOUSBHost device for the +// duration of one USBIP attachment. The device handle itself is owned +// by darwinExportHost (kept across attachments for re-capture), so +// Close here is intentionally a no-op. +type darwinIOUSBHostEngine struct { + device *darwinUSBHostDevice +} + +func newDarwinIOUSBHostEngine(device *darwinUSBHostDevice) *darwinIOUSBHostEngine { + return &darwinIOUSBHostEngine{device: device} +} + +func (e *darwinIOUSBHostEngine) Submit(req URBRequest) URBResponse { + command := req.Command + switch { + case command.Header.Endpoint == 0: + status, actual, outBuf, err := e.device.control(command.Setup, req.Buffer) + return URBResponse{Status: status, ActualLength: actual, Buffer: outBuf, Error: err} + case command.NumberOfPackets > 0: + asap := command.TransferFlags&usbipTransferFlagIsoASAP != 0 + status, actual, outBuf, isoOut, err := e.device.iso(req.Endpoint, req.Buffer, command.StartFrame, asap, req.IsoPackets) + return URBResponse{Status: status, ActualLength: actual, Buffer: outBuf, IsoPackets: isoOut, Error: err} + default: + status, actual, outBuf, err := e.device.io(req.Endpoint, req.Buffer) + return URBResponse{Status: status, ActualLength: actual, Buffer: outBuf, Error: err} + } +} + +func (e *darwinIOUSBHostEngine) AbortEndpoint(endpoint uint8) error { + return e.device.abortEndpoint(endpoint) +} + +func (e *darwinIOUSBHostEngine) Close() error { + return nil +} diff --git a/service/usbip/host_darwin.go b/service/usbip/host_darwin.go index c8bb09943..d7385c281 100644 --- a/service/usbip/host_darwin.go +++ b/service/usbip/host_darwin.go @@ -4,9 +4,7 @@ package usbip import ( "context" - "errors" "fmt" - "io" "maps" "net" "slices" @@ -14,10 +12,7 @@ import ( "github.com/sagernet/sing-box/log" "github.com/sagernet/sing-box/option" - "github.com/sagernet/sing/common" E "github.com/sagernet/sing/common/exceptions" - - "golang.org/x/sys/unix" ) func newPlatformExportHost(ctx context.Context, logger log.ContextLogger, matches []option.USBIPDeviceMatch) (ExportHost, error) { @@ -348,7 +343,7 @@ func (e *darwinExport) NewServerDataSession(ctx context.Context, conn net.Conn) if e.device == nil { return nil, E.New("darwin export ", e.busid, " has no device handle") } - return newDarwinServerDataSession(ctx, e.logger, conn, e.device), nil + return newUserspaceURBSession(ctx, e.logger, conn, newDarwinIOUSBHostEngine(e.device)), nil } type darwinImportHost struct { @@ -372,456 +367,3 @@ func (h *darwinImportHost) Attach(ctx context.Context, info DeviceInfoTruncated, } return controller, nil } - -var _ DataSession = (*darwinServerDataSession)(nil) - -type darwinServerDataSession struct { - ctx context.Context - logger log.ContextLogger - conn net.Conn - device *darwinUSBHostDevice - writeAccess sync.Mutex - access sync.Mutex - pending map[uint32]darwinServerSubmitState - endpoints map[uint8]*darwinServerEndpointState - wg sync.WaitGroup - - done chan struct{} - doneOnce sync.Once - runErr error - - stateAccess sync.Mutex - started bool - closed bool - closeOnce sync.Once - closeErr error -} - -type darwinServerSubmitState struct { - command SubmitCommand - endpoint uint8 - started bool - unlinked bool - drained chan struct{} -} - -type darwinServerEndpointState struct { - active uint32 - queued []uint32 -} - -type darwinServerNextSubmit struct { - sequence uint32 - command SubmitCommand -} - -func newDarwinServerDataSession(ctx context.Context, logger log.ContextLogger, conn net.Conn, device *darwinUSBHostDevice) *darwinServerDataSession { - return &darwinServerDataSession{ - ctx: ctx, - logger: logger, - conn: conn, - device: device, - pending: make(map[uint32]darwinServerSubmitState), - endpoints: make(map[uint8]*darwinServerEndpointState), - done: make(chan struct{}), - } -} - -func (s *darwinServerDataSession) Done() <-chan struct{} { - return s.done -} - -func (s *darwinServerDataSession) Err() error { - return s.runErr -} - -func (s *darwinServerDataSession) Start() error { - s.stateAccess.Lock() - defer s.stateAccess.Unlock() - if s.started || s.closed { - return nil - } - s.started = true - go s.run() - return nil -} - -func (s *darwinServerDataSession) Close() error { - s.closeOnce.Do(func() { - s.closeErr = common.Close(s.conn) - }) - s.stateAccess.Lock() - started := s.started - s.closed = true - s.stateAccess.Unlock() - if started { - <-s.done - } else { - s.markDone(nil) - } - return s.closeErr -} - -func (s *darwinServerDataSession) markDone(err error) { - s.doneOnce.Do(func() { - s.runErr = err - close(s.done) - }) -} - -func (s *darwinServerDataSession) run() { - err := s.serve() - if err != nil && (errors.Is(err, io.EOF) || E.IsClosedOrCanceled(err)) { - err = nil - } - s.markDone(err) -} - -func (s *darwinServerDataSession) serve() error { - stopCloseOnCancel := closeConnOnContextDone(s.ctx, s.conn) - defer stopCloseOnCancel() - defer func() { - s.abortPendingSubmits() - s.wg.Wait() - }() - for { - header, err := ReadDataHeader(s.conn) - if err != nil { - if errors.Is(err, io.EOF) { - return nil - } - return err - } - switch header.Command { - case CmdSubmit: - command, err := ReadSubmitCommandBody(s.conn, header) - if err != nil { - return err - } - next, shouldStart := s.enqueueSubmit(command) - if shouldStart { - s.startSubmit(next) - } - case CmdUnlink: - command, err := ReadUnlinkCommandBody(s.conn, header) - if err != nil { - return err - } - status := int32(0) - endpoint, drained, shouldAbort, found := s.unlinkSubmit(command.SeqNum) - if found { - if shouldAbort { - abortErr := s.device.abortEndpoint(endpoint) - if abortErr != nil { - s.logger.Debug("abort endpoint 0x", hex8(endpoint), ": ", abortErr) - } - } - <-drained - status = usbipStatusECONNRESET - } - s.writeAccess.Lock() - err = WriteUnlinkResponse(s.conn, UnlinkResponse{ - Header: DataHeader{Command: RetUnlink, SeqNum: header.SeqNum, DevID: header.DevID, Direction: header.Direction, Endpoint: header.Endpoint}, - Status: status, - }) - s.writeAccess.Unlock() - if err != nil { - return err - } - default: - return E.New("unexpected USB/IP command ", fmt.Sprintf("0x%08x", header.Command)) - } - } -} - -func (s *darwinServerDataSession) enqueueSubmit(command SubmitCommand) (darwinServerNextSubmit, bool) { - endpoint := submitScheduleEndpoint(command) - sequence := command.Header.SeqNum - - s.access.Lock() - defer s.access.Unlock() - - state := darwinServerSubmitState{ - command: command, - endpoint: endpoint, - } - endpointState, found := s.endpoints[endpoint] - if !found { - endpointState = &darwinServerEndpointState{} - s.endpoints[endpoint] = endpointState - } - if endpointState.active == 0 { - state.started = true - s.pending[sequence] = state - endpointState.active = sequence - return darwinServerNextSubmit{ - sequence: sequence, - command: command, - }, true - } - s.pending[sequence] = state - endpointState.queued = append(endpointState.queued, sequence) - return darwinServerNextSubmit{}, false -} - -func (s *darwinServerDataSession) startSubmit(next darwinServerNextSubmit) { - s.wg.Add(1) - go func() { - defer s.wg.Done() - - response := s.handleSubmit(next.command) - shouldSend, followUp, hasFollowUp := s.finishSubmit(next.sequence) - if shouldSend { - s.writeAccess.Lock() - err := WriteSubmitResponse(s.conn, response) - s.writeAccess.Unlock() - if err != nil { - _ = s.conn.Close() - } - } - if hasFollowUp { - s.startSubmit(followUp) - } - }() -} - -func (s *darwinServerDataSession) handleSubmit(command SubmitCommand) SubmitResponse { - response := SubmitResponse{ - Header: DataHeader{ - Command: RetSubmit, - SeqNum: command.Header.SeqNum, - DevID: command.Header.DevID, - Direction: command.Header.Direction, - Endpoint: command.Header.Endpoint, - }, - StartFrame: command.StartFrame, - NumberOfPackets: command.NumberOfPackets, - IsoPackets: slices.Clone(command.IsoPackets), - } - buffer := command.Buffer - if command.Header.Direction == USBIPDirIn && command.TransferBufferLength > 0 { - buffer = make([]byte, int(command.TransferBufferLength)) - } - var ( - status int32 - actual int32 - err error - ) - endpoint := commandEndpoint(command) - switch { - case command.Header.Endpoint == 0: - status, actual, buffer, err = s.device.control(command.Setup, buffer) - case command.NumberOfPackets > 0: - asap := command.TransferFlags&usbipTransferFlagIsoASAP != 0 - status, actual, buffer, response.IsoPackets, err = s.device.iso(endpoint, buffer, command.StartFrame, asap, response.IsoPackets) - default: - status, actual, buffer, err = s.device.io(endpoint, buffer) - } - if err != nil { - s.logger.Debug("submit seq ", command.Header.SeqNum, " endpoint 0x", hex8(endpoint), ": ", err) - response.Status = -int32(unix.EIO) - return response - } - response.Status = status - if actual < 0 { - actual = 0 - } - response.ActualLength = actual - if command.Header.Direction == USBIPDirIn && actual > 0 { - if command.NumberOfPackets > 0 { - response.Buffer = packIsoInResponseBuffer(buffer, response.IsoPackets) - response.ActualLength = int32(len(response.Buffer)) - } else { - response.Buffer = buffer[:min(int(actual), len(buffer))] - } - } - return response -} - -func packIsoInResponseBuffer(buffer []byte, packets []IsoPacketDescriptor) []byte { - var total int - for i := range packets { - length := int(packets[i].ActualLength) - if length <= 0 { - packets[i].ActualLength = 0 - continue - } - offset := int(packets[i].Offset) - if offset < 0 || offset >= len(buffer) { - packets[i].ActualLength = 0 - continue - } - if offset+length > len(buffer) { - length = len(buffer) - offset - packets[i].ActualLength = int32(length) - } - total += length - } - if total == 0 { - return nil - } - packed := make([]byte, 0, total) - for i := range packets { - length := int(packets[i].ActualLength) - if length <= 0 { - continue - } - offset := int(packets[i].Offset) - packed = append(packed, buffer[offset:offset+length]...) - } - return packed -} - -func (s *darwinServerDataSession) unlinkSubmit(seq uint32) (uint8, <-chan struct{}, bool, bool) { - var drained chan struct{} - - s.access.Lock() - pending, found := s.pending[seq] - if !found { - s.access.Unlock() - return 0, nil, false, false - } - if pending.drained == nil { - pending.drained = make(chan struct{}) - } - drained = pending.drained - if !pending.started { - endpointState := s.endpoints[pending.endpoint] - if endpointState != nil { - endpointState.queued = removeQueuedSequence(endpointState.queued, seq) - if endpointState.active == 0 && len(endpointState.queued) == 0 { - delete(s.endpoints, pending.endpoint) - } - } - delete(s.pending, seq) - s.access.Unlock() - close(drained) - return pending.endpoint, drained, false, true - } - shouldAbort := !pending.unlinked - pending.unlinked = true - s.pending[seq] = pending - s.access.Unlock() - return pending.endpoint, drained, shouldAbort, true -} - -func (s *darwinServerDataSession) finishSubmit(seq uint32) (bool, darwinServerNextSubmit, bool) { - var drained chan struct{} - var followUp darwinServerNextSubmit - var hasFollowUp bool - - s.access.Lock() - pending, found := s.pending[seq] - if !found { - s.access.Unlock() - return true, darwinServerNextSubmit{}, false - } - endpointState := s.endpoints[pending.endpoint] - if endpointState != nil && endpointState.active == seq { - endpointState.active = 0 - } - delete(s.pending, seq) - if endpointState != nil { - for len(endpointState.queued) > 0 { - nextSequence := endpointState.queued[0] - endpointState.queued = endpointState.queued[1:] - nextPending, nextFound := s.pending[nextSequence] - if !nextFound { - continue - } - nextPending.started = true - s.pending[nextSequence] = nextPending - endpointState.active = nextSequence - followUp = darwinServerNextSubmit{ - sequence: nextSequence, - command: nextPending.command, - } - hasFollowUp = true - break - } - if endpointState.active == 0 && len(endpointState.queued) == 0 { - delete(s.endpoints, pending.endpoint) - } - } - drained = pending.drained - unlinked := pending.unlinked - s.access.Unlock() - if drained != nil { - close(drained) - } - return !unlinked, followUp, hasFollowUp -} - -func (s *darwinServerDataSession) abortPendingSubmits() { - var ( - activeEndpoints []uint8 - drained []chan struct{} - ) - - s.access.Lock() - seen := make(map[uint8]struct{}) - for seq, pending := range s.pending { - if !pending.started { - delete(s.pending, seq) - if pending.drained != nil { - drained = append(drained, pending.drained) - } - continue - } - if !pending.unlinked { - seen[pending.endpoint] = struct{}{} - } - pending.unlinked = true - s.pending[seq] = pending - } - for endpoint := range s.endpoints { - endpointState := s.endpoints[endpoint] - if endpointState != nil { - endpointState.queued = nil - } - } - s.access.Unlock() - - for _, drainedChannel := range drained { - close(drainedChannel) - } - activeEndpoints = make([]uint8, 0, len(seen)) - for endpoint := range seen { - activeEndpoints = append(activeEndpoints, endpoint) - } - slices.Sort(activeEndpoints) - if s.device == nil { - return - } - for _, endpoint := range activeEndpoints { - err := s.device.abortEndpoint(endpoint) - if err != nil { - s.logger.Debug("abort endpoint 0x", hex8(endpoint), ": ", err) - } - } -} - -func removeQueuedSequence(queue []uint32, sequence uint32) []uint32 { - for index, current := range queue { - if current != sequence { - continue - } - return append(queue[:index], queue[index+1:]...) - } - return queue -} - -func submitScheduleEndpoint(command SubmitCommand) uint8 { - if command.Header.Endpoint == 0 { - return 0 - } - return commandEndpoint(command) -} - -func commandEndpoint(command SubmitCommand) uint8 { - endpoint := uint8(command.Header.Endpoint & 0x0f) - if command.Header.Direction == USBIPDirIn { - endpoint |= 0x80 - } - return endpoint -} diff --git a/service/usbip/session_userspace.go b/service/usbip/session_userspace.go new file mode 100644 index 000000000..8fab029ef --- /dev/null +++ b/service/usbip/session_userspace.go @@ -0,0 +1,470 @@ +//go:build linux || (darwin && cgo) + +package usbip + +import ( + "context" + "errors" + "fmt" + "io" + "net" + "slices" + "sync" + + "github.com/sagernet/sing-box/log" + "github.com/sagernet/sing/common" + E "github.com/sagernet/sing/common/exceptions" +) + +var _ DataSession = (*userspaceURBSession)(nil) + +// userspaceURBSession drives one USBIP attachment when the per-URB I/O +// happens in user space (Darwin IOUSBHost, Windows VBoxUSB). It reads +// CMD_SUBMIT/CMD_UNLINK from conn, serializes per endpoint, dispatches +// to a URBEngine, frames RET_SUBMIT/RET_UNLINK back over conn. Linux +// kernel-handoff sessions use kernelHandoffSession instead. +type userspaceURBSession struct { + ctx context.Context + logger log.ContextLogger + conn net.Conn + engine URBEngine + + writeAccess sync.Mutex + access sync.Mutex + pending map[uint32]userspaceSubmitState + endpoints map[uint8]*userspaceEndpointState + wg sync.WaitGroup + + done chan struct{} + doneOnce sync.Once + runErr error + + stateAccess sync.Mutex + started bool + closed bool + closeOnce sync.Once + closeErr error +} + +type userspaceSubmitState struct { + command SubmitCommand + endpoint uint8 + started bool + unlinked bool + drained chan struct{} +} + +type userspaceEndpointState struct { + active uint32 + queued []uint32 +} + +type userspaceNextSubmit struct { + sequence uint32 + command SubmitCommand +} + +func newUserspaceURBSession(ctx context.Context, logger log.ContextLogger, conn net.Conn, engine URBEngine) *userspaceURBSession { + return &userspaceURBSession{ + ctx: ctx, + logger: logger, + conn: conn, + engine: engine, + pending: make(map[uint32]userspaceSubmitState), + endpoints: make(map[uint8]*userspaceEndpointState), + done: make(chan struct{}), + } +} + +func (s *userspaceURBSession) Done() <-chan struct{} { + return s.done +} + +func (s *userspaceURBSession) Err() error { + return s.runErr +} + +func (s *userspaceURBSession) Start() error { + s.stateAccess.Lock() + defer s.stateAccess.Unlock() + if s.started || s.closed { + return nil + } + s.started = true + go s.run() + return nil +} + +func (s *userspaceURBSession) Close() error { + s.closeOnce.Do(func() { + s.closeErr = common.Close(s.conn) + }) + s.stateAccess.Lock() + started := s.started + s.closed = true + s.stateAccess.Unlock() + if started { + <-s.done + } else { + s.markDone(nil) + } + _ = s.engine.Close() + return s.closeErr +} + +func (s *userspaceURBSession) markDone(err error) { + s.doneOnce.Do(func() { + s.runErr = err + close(s.done) + }) +} + +func (s *userspaceURBSession) run() { + err := s.serve() + if err != nil && (errors.Is(err, io.EOF) || E.IsClosedOrCanceled(err)) { + err = nil + } + s.markDone(err) +} + +func (s *userspaceURBSession) serve() error { + stopCloseOnCancel := closeConnOnContextDone(s.ctx, s.conn) + defer stopCloseOnCancel() + defer func() { + s.abortPendingSubmits() + s.wg.Wait() + }() + for { + header, err := ReadDataHeader(s.conn) + if err != nil { + if errors.Is(err, io.EOF) { + return nil + } + return err + } + switch header.Command { + case CmdSubmit: + command, err := ReadSubmitCommandBody(s.conn, header) + if err != nil { + return err + } + next, shouldStart := s.enqueueSubmit(command) + if shouldStart { + s.startSubmit(next) + } + case CmdUnlink: + command, err := ReadUnlinkCommandBody(s.conn, header) + if err != nil { + return err + } + status := int32(0) + endpoint, drained, shouldAbort, found := s.unlinkSubmit(command.SeqNum) + if found { + if shouldAbort { + abortErr := s.engine.AbortEndpoint(endpoint) + if abortErr != nil { + s.logger.Debug("abort endpoint 0x", hex8(endpoint), ": ", abortErr) + } + } + <-drained + status = usbipStatusECONNRESET + } + s.writeAccess.Lock() + err = WriteUnlinkResponse(s.conn, UnlinkResponse{ + Header: DataHeader{Command: RetUnlink, SeqNum: header.SeqNum, DevID: header.DevID, Direction: header.Direction, Endpoint: header.Endpoint}, + Status: status, + }) + s.writeAccess.Unlock() + if err != nil { + return err + } + default: + return E.New("unexpected USB/IP command ", fmt.Sprintf("0x%08x", header.Command)) + } + } +} + +func (s *userspaceURBSession) enqueueSubmit(command SubmitCommand) (userspaceNextSubmit, bool) { + endpoint := submitScheduleEndpoint(command) + sequence := command.Header.SeqNum + + s.access.Lock() + defer s.access.Unlock() + + state := userspaceSubmitState{ + command: command, + endpoint: endpoint, + } + endpointState, found := s.endpoints[endpoint] + if !found { + endpointState = &userspaceEndpointState{} + s.endpoints[endpoint] = endpointState + } + if endpointState.active == 0 { + state.started = true + s.pending[sequence] = state + endpointState.active = sequence + return userspaceNextSubmit{ + sequence: sequence, + command: command, + }, true + } + s.pending[sequence] = state + endpointState.queued = append(endpointState.queued, sequence) + return userspaceNextSubmit{}, false +} + +func (s *userspaceURBSession) startSubmit(next userspaceNextSubmit) { + s.wg.Add(1) + go func() { + defer s.wg.Done() + + response := s.handleSubmit(next.command) + shouldSend, followUp, hasFollowUp := s.finishSubmit(next.sequence) + if shouldSend { + s.writeAccess.Lock() + err := WriteSubmitResponse(s.conn, response) + s.writeAccess.Unlock() + if err != nil { + _ = s.conn.Close() + } + } + if hasFollowUp { + s.startSubmit(followUp) + } + }() +} + +func (s *userspaceURBSession) handleSubmit(command SubmitCommand) SubmitResponse { + response := SubmitResponse{ + Header: DataHeader{ + Command: RetSubmit, + SeqNum: command.Header.SeqNum, + DevID: command.Header.DevID, + Direction: command.Header.Direction, + Endpoint: command.Header.Endpoint, + }, + StartFrame: command.StartFrame, + NumberOfPackets: command.NumberOfPackets, + IsoPackets: slices.Clone(command.IsoPackets), + } + buffer := command.Buffer + if command.Header.Direction == USBIPDirIn && command.TransferBufferLength > 0 { + buffer = make([]byte, int(command.TransferBufferLength)) + } + endpoint := commandEndpoint(command) + result := s.engine.Submit(URBRequest{ + Command: command, + Endpoint: endpoint, + Buffer: buffer, + IsoPackets: response.IsoPackets, + }) + if result.Error != nil { + s.logger.Debug("submit seq ", command.Header.SeqNum, " endpoint 0x", hex8(endpoint), ": ", result.Error) + response.Status = usbipStatusEIO + return response + } + response.Status = result.Status + if result.IsoPackets != nil { + response.IsoPackets = result.IsoPackets + } + actual := result.ActualLength + if actual < 0 { + actual = 0 + } + response.ActualLength = actual + if command.Header.Direction == USBIPDirIn && actual > 0 { + if command.NumberOfPackets > 0 { + response.Buffer = packIsoInResponseBuffer(result.Buffer, response.IsoPackets) + response.ActualLength = int32(len(response.Buffer)) + } else { + response.Buffer = result.Buffer[:min(int(actual), len(result.Buffer))] + } + } + return response +} + +func packIsoInResponseBuffer(buffer []byte, packets []IsoPacketDescriptor) []byte { + var total int + for i := range packets { + length := int(packets[i].ActualLength) + if length <= 0 { + packets[i].ActualLength = 0 + continue + } + offset := int(packets[i].Offset) + if offset < 0 || offset >= len(buffer) { + packets[i].ActualLength = 0 + continue + } + if offset+length > len(buffer) { + length = len(buffer) - offset + packets[i].ActualLength = int32(length) + } + total += length + } + if total == 0 { + return nil + } + packed := make([]byte, 0, total) + for i := range packets { + length := int(packets[i].ActualLength) + if length <= 0 { + continue + } + offset := int(packets[i].Offset) + packed = append(packed, buffer[offset:offset+length]...) + } + return packed +} + +func (s *userspaceURBSession) unlinkSubmit(seq uint32) (uint8, <-chan struct{}, bool, bool) { + var drained chan struct{} + + s.access.Lock() + pending, found := s.pending[seq] + if !found { + s.access.Unlock() + return 0, nil, false, false + } + if pending.drained == nil { + pending.drained = make(chan struct{}) + } + drained = pending.drained + if !pending.started { + endpointState := s.endpoints[pending.endpoint] + if endpointState != nil { + endpointState.queued = removeQueuedSequence(endpointState.queued, seq) + if endpointState.active == 0 && len(endpointState.queued) == 0 { + delete(s.endpoints, pending.endpoint) + } + } + delete(s.pending, seq) + s.access.Unlock() + close(drained) + return pending.endpoint, drained, false, true + } + shouldAbort := !pending.unlinked + pending.unlinked = true + s.pending[seq] = pending + s.access.Unlock() + return pending.endpoint, drained, shouldAbort, true +} + +func (s *userspaceURBSession) finishSubmit(seq uint32) (bool, userspaceNextSubmit, bool) { + var drained chan struct{} + var followUp userspaceNextSubmit + var hasFollowUp bool + + s.access.Lock() + pending, found := s.pending[seq] + if !found { + s.access.Unlock() + return true, userspaceNextSubmit{}, false + } + endpointState := s.endpoints[pending.endpoint] + if endpointState != nil && endpointState.active == seq { + endpointState.active = 0 + } + delete(s.pending, seq) + if endpointState != nil { + for len(endpointState.queued) > 0 { + nextSequence := endpointState.queued[0] + endpointState.queued = endpointState.queued[1:] + nextPending, nextFound := s.pending[nextSequence] + if !nextFound { + continue + } + nextPending.started = true + s.pending[nextSequence] = nextPending + endpointState.active = nextSequence + followUp = userspaceNextSubmit{ + sequence: nextSequence, + command: nextPending.command, + } + hasFollowUp = true + break + } + if endpointState.active == 0 && len(endpointState.queued) == 0 { + delete(s.endpoints, pending.endpoint) + } + } + drained = pending.drained + unlinked := pending.unlinked + s.access.Unlock() + if drained != nil { + close(drained) + } + return !unlinked, followUp, hasFollowUp +} + +func (s *userspaceURBSession) abortPendingSubmits() { + var ( + activeEndpoints []uint8 + drained []chan struct{} + ) + + s.access.Lock() + seen := make(map[uint8]struct{}) + for seq, pending := range s.pending { + if !pending.started { + delete(s.pending, seq) + if pending.drained != nil { + drained = append(drained, pending.drained) + } + continue + } + if !pending.unlinked { + seen[pending.endpoint] = struct{}{} + } + pending.unlinked = true + s.pending[seq] = pending + } + for endpoint := range s.endpoints { + endpointState := s.endpoints[endpoint] + if endpointState != nil { + endpointState.queued = nil + } + } + s.access.Unlock() + + for _, drainedChannel := range drained { + close(drainedChannel) + } + activeEndpoints = make([]uint8, 0, len(seen)) + for endpoint := range seen { + activeEndpoints = append(activeEndpoints, endpoint) + } + slices.Sort(activeEndpoints) + for _, endpoint := range activeEndpoints { + err := s.engine.AbortEndpoint(endpoint) + if err != nil { + s.logger.Debug("abort endpoint 0x", hex8(endpoint), ": ", err) + } + } +} + +func removeQueuedSequence(queue []uint32, sequence uint32) []uint32 { + for index, current := range queue { + if current != sequence { + continue + } + return append(queue[:index], queue[index+1:]...) + } + return queue +} + +func submitScheduleEndpoint(command SubmitCommand) uint8 { + if command.Header.Endpoint == 0 { + return 0 + } + return commandEndpoint(command) +} + +func commandEndpoint(command SubmitCommand) uint8 { + endpoint := uint8(command.Header.Endpoint & 0x0f) + if command.Header.Direction == USBIPDirIn { + endpoint |= 0x80 + } + return endpoint +} diff --git a/service/usbip/shared.go b/service/usbip/shared.go index 38e7e960b..a8600fe34 100644 --- a/service/usbip/shared.go +++ b/service/usbip/shared.go @@ -42,6 +42,11 @@ func closeConnOnContextDone(ctx context.Context, conn net.Conn) func() { } } +func hex8(v uint8) string { + const hexdigits = "0123456789abcdef" + return string([]byte{hexdigits[(v>>4)&0xf], hexdigits[v&0xf]}) +} + func describeMatch(m option.USBIPDeviceMatch) string { var parts []string if m.BusID != "" { diff --git a/service/usbip/shared_darwin.go b/service/usbip/shared_darwin.go deleted file mode 100644 index 80fbba148..000000000 --- a/service/usbip/shared_darwin.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build darwin && cgo - -package usbip - -func hex8(v uint8) string { - const hexdigits = "0123456789abcdef" - return string([]byte{hexdigits[(v>>4)&0xf], hexdigits[v&0xf]}) -} diff --git a/service/usbip/urb_engine.go b/service/usbip/urb_engine.go new file mode 100644 index 000000000..a64576c51 --- /dev/null +++ b/service/usbip/urb_engine.go @@ -0,0 +1,49 @@ +//go:build linux || (darwin && cgo) + +package usbip + +// URBEngine executes USB Request Blocks against an already-claimed +// device. The session layer (session_userspace.go) handles framing, +// per-endpoint ordering, and unlink bookkeeping; the engine performs +// the per-URB I/O and per-endpoint aborts only. +// +// Submit is called from per-endpoint goroutines; the session never +// issues two Submits concurrently for the same endpoint, so the engine +// does not need its own cross-endpoint serialization. +type URBEngine interface { + Submit(request URBRequest) URBResponse + // AbortEndpoint cancels all in-flight submits on the given raw + // endpoint address (direction bit included). It is invoked once per + // pending sequence at CMD_UNLINK time and once per active endpoint + // at session shutdown. + AbortEndpoint(endpoint uint8) error + // Close releases engine-owned resources. For engines that own the + // underlying device handle (e.g. Windows VBoxUSB), this releases it. + // For engines where the host manages the device handle separately + // (e.g. Darwin IOUSBHost capture), Close may be a no-op. Idempotent. + Close() error +} + +// URBRequest carries one decoded CMD_SUBMIT plus session-owned buffers. +// Buffer holds the OUT payload on entry, or a pre-allocated zero buffer +// for IN transfers. IsoPackets is pre-cloned from the wire command so +// the engine may overwrite descriptors in place during iso completion. +type URBRequest struct { + Command SubmitCommand + Endpoint uint8 + Buffer []byte + IsoPackets []IsoPacketDescriptor +} + +// URBResponse is the engine's verdict on one URB. Status follows USBIP +// convention (negated errno, 0 on success). ActualLength is the number +// of payload bytes valid in Buffer. Error is engine-internal failure +// distinct from a USB-level error: on Error the session emits +// Status = usbipStatusEIO and logs at Debug. +type URBResponse struct { + Status int32 + ActualLength int32 + Buffer []byte + IsoPackets []IsoPacketDescriptor + Error error +}