mirror of
git://sigrok.org/libserialport
synced 2023-08-10 21:13:24 +03:00
windows: Handle the case where there are no serial ports at all.
It's possible for the HARDWARE\DEVICEMAP\SERIALCOMM key to not exist in the registry if there are no serial ports at all and never have been, as discovered on my rather minimalist gaming machine. Handle that case gracefully and return an empty list.
This commit is contained in:
parent
c79e0ac8ef
commit
8488868187
@ -491,8 +491,12 @@ SP_PRIV enum sp_return list_ports(struct sp_port ***list)
|
||||
DEBUG("Opening registry key");
|
||||
if ((result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("HARDWARE\\DEVICEMAP\\SERIALCOMM"),
|
||||
0, KEY_QUERY_VALUE, &key)) != ERROR_SUCCESS) {
|
||||
SetLastError(result);
|
||||
SET_FAIL(ret, "RegOpenKeyEx() failed");
|
||||
/* It's possible for this key to not exist if there are no serial ports
|
||||
* at all. In that case we're done. Return a failure for any other error. */
|
||||
if (result != ERROR_FILE_NOT_FOUND) {
|
||||
SetLastError(result);
|
||||
SET_FAIL(ret, "RegOpenKeyEx() failed");
|
||||
}
|
||||
goto out_done;
|
||||
}
|
||||
DEBUG("Querying registry key value and data sizes");
|
||||
|
Loading…
Reference in New Issue
Block a user