TE_USB_FX2_CYAPI int TE_USB_FX2_Close(CCyUSBDevice *USBDeviceList)
Your application program shall call this function like this:
TE_USB_FX2_Close(USBDeviceList);
l
After the execution of this function, no internal handle inside of USBDeviceList is open.
These handles are internally managed by CyAPI.lib and there is no need to expose them to the user.
The TE_USB_FX2_Close() function takes an already initialized USB device list (USBDeviceList) and closes the handle to the Trenz Electronic device driver, if one is open. This function closes all internal handles of USBDeviceList.
Warning about derived variables
In the code, it is possible to call TE_USB_FX2_Open() where TE0300_Open() is used.
In the code, it is possible to call TE_USB_FX2_Close() where TE0300_Close() is used, but
Other internal handles (inside USBDeviceList) are automatically closed by TE_USB_FX2_Open() function when another handle to the device driver is already open (i.e. a TE_USB_FX2_Open() has been successfully used before). It is a behavior inherithed by CyAPI.dll Open() function.
This function takes an already initialized USB device list, searches for Trenz Electronic USB FX2 devices (any Cypress driver derivative and VID = 0xbd0, PID=0x0300) and opens (and immediately after closes) the first device found.
The selected module is not directly given by USBDeviceList (CCyUSBDevice type). An internal operation that opens and immediately after closes an handle to CyUSB.sys driver (or a derivative like TE_USB_FX2_xx.sys) is executed instead (see page 45 of CyAPI.pdf). The open method closes every other handle already opened, and close method closes the only handle open; in this way, all handles are closed. These handles are internally managed by CyAPI.lib and there is no need to expose them to the user.
Managed C# TE_USB_FX2_Close() of TE_USB_FX2_CyUSB.dll disposes USBdevList.
Unmanaged C++ TE_USB_FX2_Close() | It can be freely called but it is rare that you would ever need to call TE_USB_FX2_Close() explicitly (though doing so would not cause any problems). |
Managed C# TE_USB_FX2_Close() | It cannot be freely called and it is rare that you would ever need to call TE_USB_FX2_Close() explicitly. Furthermore, if it is used in the wrong way, the program can raise exceptions. |