oxalin / usbip_windows Goto Github PK
View Code? Open in Web Editor NEWProject halted, moving to joint venture, see Readme. Revive Windows' USB/IP drivers and tools from the dormant SourceForge's one
Project halted, moving to joint venture, see Readme. Revive Windows' USB/IP drivers and tools from the dormant SourceForge's one
Create a USBIP compatible host driver that will allow to share a USB device from a Windows station.
The same approach as the one used under Linux (stub driver) could be used.
We implement and manage our own Cancel IRP routine. However, since Windows XP, this can be replaced and more easily managed by cancel-safe IRP queues.
Evaluate and possibly move to Cancel-Safe IRP Queues instead of our own cancel routine. Cancel-Safe IRP Queues are natively available since Windows XP. If we still want to support Windows 2000, we need to explicitly link againt the Csq.lib library that is included in the Windows Driver Kit (WDK).
See: https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/cancel-safe-irp-queues
Reported by: lcgamboa and Anonymous
Date: 2013-03-20
Links:
-lcgamboa/USBIP-Virtual-USB-Device@6f42bc5
Description: there is mismatch between the current USBIP_VERSION under Linux and Windows in the usbip-utils. Linux version is at 0x00000111 for the usbip-utils, while the driver doesn't have any trace left; under Windows, the driver is at 0x000106 (sic) while usbip-utils exposes both 0x000111 (config.h) and 0x000106 (configure.ac).
The usbip-utils and driver both use the same USBIP_VERSION definition, at least for a while, but there was a confusion in its meaning: it should represent a protocol version that doesn't increase unless the protocol is changed).
There is also a LIBUSBIP_VERSION, which seems to still be at 0.1.0 under both OSes.
Reported by: DanT
Date:
Link: https://sourceforge.net/p/usbip/discussion/418507/thread/7ff86875/?limit=25&page=1#f556
Description: BSoD on detach in "complete_pending_irp" in the function "bus_unplug_dev".
This may have been fixed by commit b7bfa2c I included from Daniel Mitchell's patch. There was at least two possible errors with IRQL not being set correctly. However, I suspect another error could still happen under complete_pending_irp() in pnp.c.
Reported by: DanT
Date: 2011-09-23
Link: https://sourceforge.net/p/usbip/discussion/418507/thread/58e75765/
Description: at the time, DanT reported that usbip was listing devices as "Unknown Vendor:Unknown Product". While he created a patch to populate these fields, another solution had been implemented meanwhile. From what I can see, it is relying on usb.ids. However, using this solution will always need an up-to-date usb.ids file and Windows may have a better way to have the appropriate information.
I've asked DanT if his work was also relying on usb.ids usage or if he was using another mechanism. Waiting to hear from him.
Reported by: daniel danzberger
Date: 2013-02-18
Link: https://sourceforge.net/p/usbip/discussion/418507/thread/af21439c/
Description: "invalid read lengths < 4 bytes on some urbs. Causes some devices to not respond on this urb."
Proposed fix (to be validated):
Index: busenum.c
-- busenum.c (revision 201)
+++ busenum.c (working copy)
@@ -832,15 +832,23 @@
CHECK_SIZE_READ
++ len = req->TransferBufferLength;
++
++ /* minimal read len is 4 bytes */
++ if (len != 0 && len < 4)
++ len = 4;
++
set_cmd_submit_usbip_header (h,
seqnum, devid,
USBIP_DIR_IN, 0,
-- USBD_SHORT_TRANSFER_OK, req->TransferBufferLength);
++ USBD_SHORT_TRANSFER_OK,
++ len
++ );
build_setup_packet(setup,
USBIP_DIR_IN,
BMREQUEST_STANDARD, BMREQUEST_TO_DEVICE, USB_REQUEST_GET_DESCRIPTOR);
-- setup->wLength = (unsigned short)req->TransferBufferLength;
++ setup->wLength = (unsigned short)len;
setup->wValue = (req->DescriptorType<<8) | req->Index;
switch(req->DescriptorType){
Index: busenum.h
Reported by: Alexander Thomas
Date: 2011-09-08
Link: https://sourceforge.net/p/usbip/discussion/418507/thread/7ff86875/?limit=25&page=2#9556
Description:
The protocol was changed on June 7th 2011, but then partially (or totally) reverted. However, the protocol version was not lowered back.
Hello,
i tried to install your driver, but windows tells me there is a file missing and it wont continue installing it.
Also i can not find a usbip.exe file, how do i use the driver? Should i use the one from the original project?
Hello,
I just found your usbip_windows fork and started to play with it.
Still struggling with the build of the drivers. Do you think there is the possibillity
to upload / release a current build to play with?
thanks, helmut
I use vs2015 and VS2010 to compile usbip-utils, but I can't compile directly. There will be a lot of mistakes.
Hi,
I am going through the readme in usbip-vhci and noticed the use of usbip.exe. Where can I find the executable?
I am using the executable from sourceforge's 0.2 zip and have the following error at the moment:
usbip -l 192.168.1.97
Would you have any ideas as to what the issue may be? I believe I have built and installed the driver correctly.
Thank you,
James
I thin I'm using the old v0.2 version, and have installed the driver.
But am I correct that this is the client side only? and that windows cannot host the device? I have a windows that I would like to host the usb device for a linux machine.
Reported by: Lorne Sturtevant
Date: 2012-04-02
Link: https://sourceforge.net/p/usbip/discussion/418507/thread/6877196c/
Description: "I'm curious if anyone has written the usbip daemon to work under windows?"
This feature request appears more than once in the original forum.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.