mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
Stop dumping PnP nodes at an empty node.
svn path=/trunk/; revision=9795
This commit is contained in:
parent
a10440fe8a
commit
62e0fe6b5e
1 changed files with 33 additions and 26 deletions
|
@ -671,29 +671,28 @@ int main (int argc, char *argv[])
|
|||
HKEY hPnpKey;
|
||||
DWORD dwType;
|
||||
DWORD dwSize;
|
||||
BOOL Ask = TRUE;
|
||||
BOOL Ask;
|
||||
PCM_FULL_RESOURCE_DESCRIPTOR lpBuffer;
|
||||
PCM_PNP_BIOS_INSTALLATION_CHECK lpPnpInst;
|
||||
PCM_PNP_BIOS_DEVICE_NODE lpDevNode;
|
||||
|
||||
DWORD dwDataSize, dwResourceSize;
|
||||
DWORD dwDataSize;
|
||||
DWORD dwResourceSize;
|
||||
|
||||
hPnpKey = 0;
|
||||
|
||||
|
||||
if (argc >1 && (!strcmp (argv[1],"/S") || !strcmp (argv[1],"/s")))
|
||||
Ask = TRUE;
|
||||
if (argc >1 && (!strcmp(argv[1],"/S") || !strcmp(argv[1],"/s")))
|
||||
{
|
||||
Ask = FALSE;
|
||||
}
|
||||
|
||||
if (argc >1 && !strcmp (argv[1],"/?"))
|
||||
|
||||
if (argc >1 && !strcmp(argv[1],"/?"))
|
||||
{
|
||||
printf ("This utility prints the PnP-nodes from the registry\n");
|
||||
printf ("\"/s\" prevents the \"Press any key\"\n\n");
|
||||
printf("This utility prints the PnP-nodes from the registry\n");
|
||||
printf("\"/s\" prevents the \"Press any key\"\n\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
lError = GetPnpKey(&hPnpKey);
|
||||
if (lError != ERROR_SUCCESS)
|
||||
{
|
||||
|
@ -709,6 +708,12 @@ int main (int argc, char *argv[])
|
|||
/* Allocate buffer */
|
||||
dwSize = 1024;
|
||||
lpBuffer = malloc(dwSize);
|
||||
if (lpBuffer == NULL)
|
||||
{
|
||||
printf("Error: malloc() failed\n");
|
||||
RegCloseKey(hPnpKey);
|
||||
return 0;
|
||||
}
|
||||
|
||||
lError = RegQueryValueEx(hPnpKey,
|
||||
"Configuration Data",
|
||||
|
@ -721,11 +726,10 @@ int main (int argc, char *argv[])
|
|||
if (lError == ERROR_MORE_DATA)
|
||||
{
|
||||
printf("Need to resize buffer to %lu\n", dwSize);
|
||||
|
||||
}
|
||||
|
||||
printf("Failed to read 'Configuration Data' value\n");
|
||||
free (lpBuffer);
|
||||
free(lpBuffer);
|
||||
RegCloseKey(hPnpKey);
|
||||
return 0;
|
||||
}
|
||||
|
@ -739,7 +743,7 @@ int main (int argc, char *argv[])
|
|||
if (lpBuffer->PartialResourceList.Count == 0)
|
||||
{
|
||||
printf("Invalid resource count!\n");
|
||||
free (lpBuffer);
|
||||
free(lpBuffer);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -774,7 +778,7 @@ int main (int argc, char *argv[])
|
|||
}
|
||||
|
||||
#if 0
|
||||
printf ("Node: %x Size %hu (0x%hx)\n",
|
||||
printf("Node: %x Size %hu (0x%hx)\n",
|
||||
lpDevNode->Node,
|
||||
lpDevNode->Size,
|
||||
lpDevNode->Size);
|
||||
|
@ -789,10 +793,10 @@ return 0;
|
|||
if (lpDevNode->Size == 0)
|
||||
break;
|
||||
|
||||
printf ("Node: %x Size %hu (0x%hx)\n",
|
||||
lpDevNode->Node,
|
||||
lpDevNode->Size,
|
||||
lpDevNode->Size);
|
||||
printf("Node: %x Size %hu (0x%hx)\n",
|
||||
lpDevNode->Node,
|
||||
lpDevNode->Size,
|
||||
lpDevNode->Size);
|
||||
|
||||
dwDataSize += lpDevNode->Size;
|
||||
lpDevNode = (PCM_PNP_BIOS_DEVICE_NODE)((DWORD)lpDevNode + lpDevNode->Size);
|
||||
|
@ -800,12 +804,12 @@ return 0;
|
|||
|
||||
if (Ask)
|
||||
{
|
||||
printf ("\n Press any key...\n");
|
||||
printf("\n Press any key...\n");
|
||||
getch();
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("\n");
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
dwDataSize = sizeof(CM_PNP_BIOS_INSTALLATION_CHECK);
|
||||
|
@ -813,23 +817,26 @@ return 0;
|
|||
|
||||
while (dwDataSize < dwResourceSize)
|
||||
{
|
||||
PrintDeviceData (lpDevNode);
|
||||
if (lpDevNode->Size == 0)
|
||||
break;
|
||||
|
||||
PrintDeviceData(lpDevNode);
|
||||
|
||||
if (Ask)
|
||||
{
|
||||
printf ("\n Press any key...\n");
|
||||
printf("\n Press any key...\n");
|
||||
getch();
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("\n");
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
|
||||
dwDataSize += lpDevNode->Size;
|
||||
lpDevNode = (PCM_PNP_BIOS_DEVICE_NODE)((DWORD)lpDevNode + lpDevNode->Size);
|
||||
}
|
||||
|
||||
free (lpBuffer);
|
||||
free(lpBuffer);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue