Cypress Perform

Home > Design Support > Cypress Developer CommunityTM > Cypress Forums > USB Controllers > Xfer problem if I use a not signed driver.

Bookmark and Share
Cypress Developer CommunityTM
Forums | Videos | Blogs | Training | Rewards Program | Community Components



Xfer problem if I use a not signed driver.
Moderator:
RSKV

Post Reply
Follow this topic



Xfer problem if I use a not signed driver.

fdr posted on 06 Feb 2012 3:42 AM PST
Member
2 Forum Posts

I am using the .NET dll from SuiteUSB to interface with a FX2LP. In my PC application I am calling the BulkInEndpt.Xferdata method at an interval of about 1 second.

My driver is not signed or self signed. I use 64 bit version. I know that I must sign this driver but I was unable to do so.

Signtool give me unexpected error "CertOpenStore() failed". I am wating the signing of driver: this must be done by a colleague.

As a result the device is not seen as Plug and Play, even if I use F8 to force the use of unsigned driver.

The documentation makes it sound like the major reason the Xferdata function should return false is because of a timeout. 

I have tried adjusting the timeout from 1000ms to 100000ms to see if the driver is simple slow for some reason.

 

I have used C# driver command to see if the Driver see the firmware correctly.

I have compared the data given in the console application by C# driver meber of CyUsbDevice with data of firmware: they match perfectly. So the error is not here.

I noticed there are UsbdStatus and NtStatus members of the CyUSBEndPoint Class that contain error codes of the xferdata method.

I have used this members to obtain information about this errors.

URB status (from UsbdStatus command) is set to USBD_STATUS_CANCELED (0xC0010000).

This data is confirmed by Ntstatus code ( 0xC0000120 aka STATUS_CANCELLED) .

I am able to select the device using VID and PID (console application see if the device is attached or not).

From this data, it seems to me that the problem is lacking of Signing that prevents the correct behavior of driver.

 

Open the device is possible because use the data of DeviceObject created by Enumeration Process ( driver of the bus, not Device Driver).

 

Xfer data do not function because use Device Driver ( not Bus Driver), and Device Driver is not correctly charged even if I use F8 and select Charge Usigned Driver ( is not Plug and Play).

Windows Vista (and Windows 7) Plug and Play device installation requires driver packages to have a signed catalog file. Driver packages commonly consist of multiple files; the catalog file contains the signature for the entire package.

-Pavesi Sergio




Re: Xfer problem if I use a not signed driver.

aasi posted on 08 Feb 2012 12:47 AM PST
Cypress Employee
1090 Forum Posts

I wouldn't expect this to happen just because the driver is unsigned.

Please try a control transfer (uses Xferdata) using Control center when the device is bound to CyUSB.sys and let me know if the result.

Regards,

Anand



Re: Xfer problem if I use a not signed driver.

fdr posted on 08 Feb 2012 05:02 AM PST
Member
2 Forum Posts

I have used USB Control Center.

BulkOut xfer give no problem.
BULK OUT transfer
0000 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66
0010 66 66 66 66 66 66 66 66 66 66 66 66 66 66
BULK OUT transfer completed

BulkIn xfer instead give error
BULK IN transfer
BULK IN transfer failed with Error Code:997

You have written in another post that this error code is overlapped IO pending.

But give this error even if I send only one transfer.

Last URB error = 0xC0000012 [state=HALTED status=unknow ]

or

Last URB error = 0xC0010000 [state=HALTED status=unknow ]

Seem that you are correct Anand.

But why USB20CV Chapter 9 give no problem with the firmware of the board?

Thanks for the response and time.

PS: I am unable to answer 9 and 10 February.

-Pavesi Sergio.

 



Re: Xfer problem if I use a not signed driver.

aasi posted on 09 Feb 2012 10:23 PM PST
Cypress Employee
1090 Forum Posts

USBCV runs chapter 9 using control endpoint. Even though there are different endpoints defined I don't think it would try transfers to them.

With regards to Bulk IN and Bulk OUT both use the same API but with direction changed. Have you tried looking at the CATC capture to see what is actually happening on the bus?

Regards,

Anand






ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Spec No: None; Sunset Owner: GRAA; Secondary Owner: RAIK; Sunset Date: 01/01/20