[python-win32] kernal32.DeviceIoControl Operation Aborted

Red Rackham redrackem at yahoo.com
Thu Dec 18 07:49:50 CET 2008


Hi.  I'm a bit of a novice with ctypes and this is my first post here so please forgive any detected newbiness.  After trying and searching I hereby give up and appeal to the pros out there who may be more intimately familiar with DeviceIoControl usage.  
 
I'm trying use Python to access a USB device based on Cypress FX2 (EZ-USB) type part.  The first operation I'm attempting is to access a command that is supposed to return the microcontroller's PORTA value.  Here's a minimal amount of code:
 
  retCode = k32.DeviceIoControl(
   dev.deviceHandle,
   IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST,
   byref(vrControl),
   sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL),
   pBuffer,
   c_ushort(255), # READ_LENGTH,
   byref(retBytes),
   None)
 
Where the vrControl is a struct like this:
  vrControl = VENDOR_OR_CLASS_REQUEST_CONTROL()
  vrControl.direction = VENDOR_REQUEST_DIRECTION_DEVICE2HOST
  vrControl.requestType = VENDOR_REQUEST_REQUESTTYPE_VENDOR
  vrControl.recipient = VENDOR_REQUEST_RECIPIENT_ENDPOINT
  vrControl.reqTypeResdBits = 0
  vrControl.request = VR_PORTS
  vrControl.value = VR_PORTS_READ << 8 | value
  vrControl.index = port

 
kernal32.DeviceIoControl returns a 0, and kernal32.GetLastError() is returning a 995, which is, "ERROR_OPERATION_ABORTED.  The I/O operation has been aborted because of either a thread exit or an application request" according to:
http://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspx
 
The reason for the abort does not make sense to me.  Anyone know what would most commonly cause this?  What should be my next step?  
 
Thanks in advance,
Mark
 


      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20081217/8f1754ee/attachment.htm>


More information about the python-win32 mailing list