X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fwindows%2Fos-edid.cpp;h=267839250057403258dde433b2643eedd64dbf6c;hb=c22efa980c83e4ae14308bab94c69de5fc088954;hp=f9a127078016bc59b9857d55178bff4a8f12f919;hpb=ea508fa65d30dc6c212d808d7056ecb1a4fcdf01;p=deb_libcec.git diff --git a/src/lib/platform/windows/os-edid.cpp b/src/lib/platform/windows/os-edid.cpp index f9a1270..2678392 100644 --- a/src/lib/platform/windows/os-edid.cpp +++ b/src/lib/platform/windows/os-edid.cpp @@ -40,6 +40,7 @@ using namespace PLATFORM; static GUID MONITOR_GUID = { 0x4D36E96E, 0xE325, 0x11CE, { 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18 } }; +#define PA_MAX_REGENTRIES_TO_CHECK 1024 uint16_t GetPhysicalAddressFromDevice(IN HDEVINFO hDevHandle, IN PSP_DEVINFO_DATA deviceInfoData) { @@ -51,16 +52,16 @@ uint16_t GetPhysicalAddressFromDevice(IN HDEVINFO hDevHandle, IN PSP_DEVINFO_DAT CHAR regEntryName[128]; DWORD regEntryNameLength(128); DWORD type; - LONG retVal(0); + LONG retVal(ERROR_SUCCESS); - for (LONG ptr = 0; iPA == 0 && retVal != ERROR_NO_MORE_ITEMS; ptr++) + for (LONG ptr = 0; iPA == 0 && retVal == ERROR_SUCCESS && ptr < PA_MAX_REGENTRIES_TO_CHECK; ptr++) { BYTE regEntryData[1024]; DWORD regEntryDataSize = sizeof(regEntryData); retVal = RegEnumValue(hDevRegKey, ptr, ®EntryName[0], ®EntryNameLength, NULL, &type, regEntryData, ®EntryDataSize); - if (retVal == 0 && !strcmp(regEntryName,"EDID")) + if (retVal == ERROR_SUCCESS && !strcmp(regEntryName,"EDID")) iPA = CEDIDParser::GetPhysicalAddressFromEDID(regEntryData, regEntryDataSize); } RegCloseKey(hDevRegKey);