Cypress CyUsb3.sys
Programmer's Reference
? 2012 Cypress Semiconductor
Contents3Table of Contents
Part IDriver Overview5Part IIModifying CyUSB3.INF7Part IIIMatching Devices to the Driver
13
1Windows XP................................................................................................................................... 142Windows Vista ,Win7 and Win8 Beta................................................................................................................................... 16
Part IVReinstalling the Driver19Part VThe IOCTL Interface
20
1Getting a Handle to the Driver................................................................................................................................... 212IOCTL_ADAPT_ABORT_PIPE................................................................................................................................... 233IOCTL_ADAPT_CYCLE................................................................................................................................... 24_PORT4IOCTL_ADAPT_GE................................................................................................................................... 25T_ADDRESS5IOCTL_ADAPT_GE................................................................................................................................... 26T_ALT_INTERFACE_SETTING6IOCTL_ADAPT_GE................................................................................................................................... 27T_CURRENT_FRAME7IOCTL_ADAPT_GE................................................................................................................................... 28T_DEVICE_NAME8IOCTL_ADAPT_GE................................................................................................................................... 29T_DEVICE_POWER_STATE9IOCTL_ADAPT_GE................................................................................................................................... 30T_DEVICE_SPEED10IOCTL_ADAPT_GE................................................................................................................................... 31T_DRIVER_VERSION11IOCTL_ADAPT_GE................................................................................................................................... 32T_FRIENDLY_NAME12IOCTL_ADAPT_GE................................................................................................................................... 33T_NUMBER_ENDPOINTS13IOCTL_ADAPT_GE................................................................................................................................... 34T_TRANSFER_SIZE14IOCTL_ADAPT_GE................................................................................................................................... 35T_USBDI_VERSION15IOCTL_ADAPT_RE................................................................................................................................... 36SET_PARENT_PORT16IOCTL_ADAPT_RE................................................................................................................................... 37SET_PIPE17IOCTL_ADAPT_SE................................................................................................................................... 38LECT_INTERFACE18IOCTL_ADAPT_SE................................................................................................................................... 39ND_EP0_CONTROL_TRANSFER19IOCTL_ADAPT_SE................................................................................................................................... 41ND_NON_EP0_TRANSFER20IOCTL_ADAPT_SE................................................................................................................................... 43ND_NON_EP0_DIRECT21IOCTL_ADAPT_SE................................................................................................................................... 46T_DEVICE_POWER_STATE22IOCTL_ADAPT_SE................................................................................................................................... 47T_TRANSFER_SIZE
Part VICYIOCTL.H
48
1ISO_ADV_PARAMS................................................................................................................................... 50
? 2012 Cypress Semiconductor
3
4Cypress CyUsb3.sys Programmer's Reference2SINGLE................................................................................................................................... 52_TRANSFER3SETUP_PACKE................................................................................................................................... 53T4SET_TRANSFE................................................................................................................................... 54R_SIZE_INFO
Part VIIFeatures Not Supported
Part VIIIEZ-USB.sys to CyUSB3.sys Migration Guide
Index
555659
? 2012 Cypress Semiconductor
Driver Overview51Driver Overview
The CYUSB3.SYS driver is licensed for distribution ONLY with Cypress USB products andproducts that employ Cypress USB chips. CyUSB3.sys is a kernel mode USB function driver,it is capable of communicating with any USB 2.0 andUSB3.0 compliant devices. The driver is general-purpose, understanding primitive USB commands, butnot implementing higher-level, USB device-class specific commands. For this reason, the driver is notcapable, for instance, of interfacing a USB mass storage class device to the Windows file system.Please note that this release does not include the USB3.0 bulk streaming interface. The driver would be ideal for communicating with a vendor-specific device from a custom USB applicationor to send low-level USB requests to any USB device for experimental or diagnostic applications. In order to use the driver to communicate with a device, Windows must match the device to the driver. The class library, CyAPI.lib and Cyusb.dll, provides a high-level programming interface to the driver. Thishelp file documents the low-level, more cumbersome and explicit programming interface.The driver supports following operating systems and platform.1. Windows XP 32 bit2. Windows Vista 32/64bit3. Windows 7 and 32/64 bit 4. Windows 8 Beta 32/64 bitCypress signed CyUSB3.sys driver for following Cypress VID/PID pairs.1. VID_04B4&PID_00F02. VID_04B4&PID_00F13. VID_04B4&PID_00F34. VID_04B4&PID_4720
Please note, the driver is signed for above mentioned pairs of Cypress VID/PID. If you modify CyUSB3.inf to add your own VID/PID, the driver will become unsigned. However, Windows OS will allow to installthe unsigned driver with warning messages on 32-bit and 64-bit platform. You can go for WHQL drivercertification with your own VID/PID once your product is ready.
Features
?Windows Driver Foundation (WDF) compliant ?Compatible with any USB 2.0 compliant device
?Compatible with Cypress USB 3.0 compliant device?Supports basic USB3.0 features.
?Supports Windows Plug and play and power management ?Supports USB Remote Wake-up
?Supports Control, Bulk, Interrupt and Isochronous transfers?Supports multiple USB devices connected at once
?Supports customizable driver GUID without re-building the driver
?Supports high bandwidth data transfers passing multiple packets per micro-frame
? 2012 Cypress Semiconductor