[REGEDIT]

- Properly walk CM_RESOURCE_LIST contents
CORE-10146

svn path=/trunk/; revision=69163
This commit is contained in:
Thomas Faber 2015-09-09 22:01:49 +00:00
parent 4d40db8e1c
commit 79faa9c9cd

View file

@ -671,7 +671,12 @@ ParseResources(HWND hwnd)
LVITEMW item; LVITEMW item;
INT iItem; INT iItem;
pFullDescriptor = &resourceValueData->List[fullResourceIndex]; pFullDescriptor = &resourceValueData->List[0];
for (i = 0; i < fullResourceIndex; i++)
{
pFullDescriptor = (PVOID)(pFullDescriptor->PartialResourceList.PartialDescriptors +
pFullDescriptor->PartialResourceList.Count);
}
pPartialResourceList = &pFullDescriptor->PartialResourceList; pPartialResourceList = &pFullDescriptor->PartialResourceList;
/* Interface type */ /* Interface type */
@ -697,7 +702,7 @@ ParseResources(HWND hwnd)
hwndLV = GetDlgItem(hwnd, IDC_PORT_LIST); hwndLV = GetDlgItem(hwnd, IDC_PORT_LIST);
#ifdef _M_AMD64 #ifdef _M_AMD64
wsprintf(buffer, L"0x%16I64x", pDescriptor->u.Port.Start.QuadPart); wsprintf(buffer, L"0x%016I64x", pDescriptor->u.Port.Start.QuadPart);
#else #else
wsprintf(buffer, L"0x%08lx", pDescriptor->u.Port.Start.u.LowPart); wsprintf(buffer, L"0x%08lx", pDescriptor->u.Port.Start.u.LowPart);
#endif #endif
@ -761,7 +766,7 @@ ParseResources(HWND hwnd)
hwndLV = GetDlgItem(hwnd, IDC_MEMORY_LIST); hwndLV = GetDlgItem(hwnd, IDC_MEMORY_LIST);
#ifdef _M_AMD64 #ifdef _M_AMD64
wsprintf(buffer, L"0x%16I64x", pDescriptor->u.Memory.Start.QuadPart); wsprintf(buffer, L"0x%016I64x", pDescriptor->u.Memory.Start.QuadPart);
#else #else
wsprintf(buffer, L"0x%08lx", pDescriptor->u.Memory.Start.u.LowPart); wsprintf(buffer, L"0x%08lx", pDescriptor->u.Memory.Start.u.LowPart);
#endif #endif
@ -975,10 +980,9 @@ static VOID AddFullResourcesToList(HWND hwnd)
ULONG i; ULONG i;
INT iItem; INT iItem;
pFullDescriptor = &resourceValueData->List[0];
for (i = 0; i < resourceValueData->Count; i++) for (i = 0; i < resourceValueData->Count; i++)
{ {
pFullDescriptor = &resourceValueData->List[i];
wsprintf(buffer, L"%lu", pFullDescriptor->BusNumber); wsprintf(buffer, L"%lu", pFullDescriptor->BusNumber);
item.mask = LVIF_TEXT; item.mask = LVIF_TEXT;
@ -995,6 +999,8 @@ static VOID AddFullResourcesToList(HWND hwnd)
GetInterfaceType(pFullDescriptor->InterfaceType, buffer, 80); GetInterfaceType(pFullDescriptor->InterfaceType, buffer, 80);
ListView_SetItemText(hwnd, iItem, 1, buffer); ListView_SetItemText(hwnd, iItem, 1, buffer);
} }
pFullDescriptor = (PVOID)(pFullDescriptor->PartialResourceList.PartialDescriptors +
pFullDescriptor->PartialResourceList.Count);
} }
} }