In order to have a working development environment for creating a 2Virt device we have chosen a Windows NT (Vista/Windows 7) with WDK (Windows Driver Kit) and DSF Device Simulation Framework) installed. DSF allows the creation of USB firmware devices connected to a simulated UHCI controller. The API is exposed through COM library objects that one must overwrite to create it's own USB device.
For this purpose we implemented a demo DSF device, found in the COM library SoftUSBProxy.dll that simulates a USB-Char Device convertor. It is a USB device with one configuration and one interface that has 2 Bulk Endpoints for IN and OUT. Packets received on this endpoints are forwarded to a char device connection, in our case a tcp connection to a Web Server.
The sample also provides a Visual Basic script for connecting our 2Virt USB-Char convertor device to the DSF simulator.
Another part of this environment it is represented by the usb2virt.sys kernel driver for this specific USB device. A demo .Net applicatio, Box2Virt is also available for comunicating with the device file exposed by the NT operating system for the system level abstractions implemented by the kernel driver (read/write/IOCTL).
What is important for this setup is the fact that the developer needs only one machine and the kernel driver and application components can be reused in any HVM implemented the current opperating system, even if the firmware emulation changes, as long as the 2Virt USB device specification remains unchanged.