For some devices, after the applications and the related devices drivers closed, my program won’t receive these requests and the devices won’t be stopped because they are still connected on the host virtually. The blocking will be terminated when my program receives URB_FUNCTION_ABORT_PIPE or URB_FUNCTION_RESET_PIPE for these pipes, or the related devices stops. Just as I said, my program blocks some requests. While searching the solution, I found the useful utility: “USB sniffer.” By the result log, I found my driver should block the request until the interrupt happens.Īfter some modifications, the problem was gone. ![]() The problem is that the caller sends the same request all the time and the CPU usage keeps on 100%. In most time, the response is nothing detected and my program sets Status to STATUS_CANCELLED and Information to 0, and then completes the requests. In the beginning, my program redirects the request and gets response quickly, then returns to the caller. ![]() The devices I tested use this kind of transfer to detect the buttons on them. When developing a similar program, I encountered a serious problem about interrupt transfer.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |