[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