EZ-USB.sys to CyUSB3.sys Migration Guide

CYUSB3

EZ-USB.sys to CyUSB3.sys Migration Guide                                                                        Top Previous

This chapter provides comparison between  ezusb.sys and cyusb3.sys driver IOCTL interface. If you are using the ezusb.sys and wants migrate to cyusb3.sys to take advantage of advance feature supported by cyusb3.sys, please refer below table. This table shows one-o-one mapping of two drivers IOCTL interface.

 

IOCTL Mapping table

 

ezusb.sys IOCTL interface

CyUSB3.sys IOCTL interface

Description

IOCTL_Ezusb_RESETPIPE

IOCTL_ADAPT_RESET_PIPE

 

 

 

 

 

 

 

Direct equivalent

IOCTL_Ezusb_ABORTPIPE

IOCTL_ADAPT_ABORT_PIPE

IOCTL_Ezusb_SETINTERFACE

IOCTL_ADAPT_SELECT_INTER FACE

IOCTL_EZUSB_GET_DRIVER_ VERSION

IOCTL_ADAPT_GET_DRIVER_ VERSION

IOCTL_EZUSB_GET_CURREN T_FRAME_NUMBER

IOCTL_ADAPT_GET_CURRENT _FRAME

IOCTL_Ezusb_RESET

IOCTL_ADAPT_RESET_PAREN T_PORT

IOCTL_EZUSB_BULK_READ

 

 

 

IOCTL_ADAPT_SEND_NON_EP0 _TRANSFER / IOCTL_ADAPT_SEND_NON_EP0_DIRECT

Indirect equivalent.

CyUSB3.sys has two IOCTLs to implement non-control transfer rather than the ezusb.sys method of having one IOCTL per transfer type and direction. So all non-control transfer based IOCTL of ezusb.sys map to two IOCTLs of CyUSB3.sys

IOCTL_EZUSB_BULK_WRITE

IOCTL_EZUSB_ISO_READ

IOCTL_EZUSB_ISO_WRITE

IOCTL_Ezusb_GET_DEVICE_D ESCRIPTOR

IOCTL_ADAPT_SEND_EP0_CO NTROL_TRANSFER

Indirect equivalent.

CyUSB3.sys has single IOCTL to implement control transfer rather than the ezusb.sys method of having one IOCTL per type and one IOCTL per standard request. All control transfer based IOCTL of ezusb.sys map to single IOCTL of CyUSB3.sys

IOCTL_Ezusb_GET_CONFIGU RATION_DESCRIPTOR

IOCTL_Ezusb_VENDOR_REQU EST

IOCTL_Ezusb_GET_STRING_D ESCRIPTOR

IOCTL_Ezusb_ANCHOR_DOW NLOAD

IOCTL_EZUSB_ANCHOR_DO WNLOAD

IOCTL_EZUSB_VENDOR_OR_ CLASS_REQUEST

IOCTL_EZUSB_SET_FEATURE

IOCTL_Ezusb_GET_PIPE_INFO

IOCTL_ADAPT_SEND_EP0_CON TROL_TRANSFER, IOCTL_ADAPT_GET_ALT_INTER FACE_SETTING

Indirect equivalent.

Parse the interface descriptor of the device to populate the output buffer with data of the PUSB_INTERFACE_INFORMATI ONstructure that will be returned by ezusb.sys

IOCTL_EZUSB_START_ISO_S TREAM

IOCTL_ADAPT_SEND_NON_EP0 _TRANSFER / IOCTL_ADAPT_SEND_NON_EP0_DIRECT

No direct equivalent

ezusb.sys implements streaming on isochronous endpoint at the driver level. While CyUSB3.sys provide single IOCTL to send/received Isochronous packets.

IOCTL_EZUSB_STOP_ISO_ST REAM

IOCTL_EZUSB_READ_ISO_BU FFER


IOCTL_EZUSB_GET_LAST_ER ROR

N/A

Windows Win32 API GetLastError() API provides the error code for last transfer.

 

Get driver handle in application using CyUSB3.sys

 

Modify CyUSB3.INF file

 

CyUSB3.sys IOCTLs definition is provided in the cyioctl.h header file.