wiki:windows_backend

Version 1 (modified by pbatard, 3 years ago) (diff)

--

Windows backend

About

The aim of this project is to bring a Windows backend to the mainline libusb 1.0 version, so that libusb 1.0 can easily be used on Windows platforms.

Status

The Windows backend is still in early alpha stages. As of 2009.12.01, it is lacking:

  • synchronous I/O functions
  • asynchronous I/O functions
  • threading
  • ...

Source

A new git branch should be created in the coming days.

Development Considerations

  • For convenience reasons, the development toolchain used for the Windows backend is MinGW and the target for the first stable release will be Vista and later Windows versions.
  • The method of dealing with USB devices in the first release will be WinUSB only, with some provisions for HID and kernel driver access to be included later.

Current Issues

  • The current poll() implementation is set to fail because it relies on winsock's select() which only deals wit socket fds.
  • IOCTL_USB_GET_NODE_CONNECTION_INFORMATION appears to be broken in MinGW-w64 (x64 platforms)

To Do

  • synchronous I/O
  • asynchronous I/O
  • threading
  • Use libevent (or something else) for poll(). Apply the MinGW patches from tor.

Development's status log

  • [2009.11.30]
    • Added clock_gettime() with hires timer detection for monotonic and GetSystemTimeAsFileTime?() (100 ns resolution) for realtime.
    • Moved the USB 2.0 root hub caps detection into set_hcd_device_descriptor()
  • [2009.11.29]
    • First release with working lsusb enumeration

Attachments

Download all attachments as: .zip