# SimConnect_EnumerateControllers The **SimConnect\_EnumerateControllers** function is used to retrieve a list of every device that is currently plugged into the simulation.   ##### Syntax ``` cpp SIMCONNECTAPI SimConnect_EnumerateControllers( HANDLE hSimConnect ); ```   ##### Parameters {{< table-wrapper >}} | Parameter | Description | Type | |---------------|--------------------------------|---------| | `hSimConnect` | Handle to a SimConnect object. | Integer | {{< /table-wrapper >}}   ##### Return Values The function returns an **HRESULT**. Possible values include, but are not limited to, those in the following table. {{< table-wrapper >}} | Return value | Description | |--------------|-------------------------| | S\_OK | The function succeeded. | | E\_FAIL | The function failed. | {{< /table-wrapper >}}   Might throw the following exception: - `SIMCONNECT_EXCEPTION_ERROR` - an internal error occurs or if no devices are plugged   ##### Remarks This function will generate a `SIMCONNECT_RECV_CONTROLLERS_LIST` response (with the [ID](../structures-and-enumerations/simconnect-recv-id/) `SIMCONNECT_RECV_ID_CONTROLLERS_LIST`), which will contain a list `SIMCONNECT_CONTROLLER_ITEM` structs.