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)
{
/* Allocate buffer */
dwSize = 1024;
lpBuffer = malloc(dwSize);
+ if (lpBuffer == NULL)
+ {
+ printf("Error: malloc() failed\n");
+ RegCloseKey(hPnpKey);
+ return 0;
+ }
lError = RegQueryValueEx(hPnpKey,
"Configuration Data",
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;
}
if (lpBuffer->PartialResourceList.Count == 0)
{
printf("Invalid resource count!\n");
- free (lpBuffer);
+ free(lpBuffer);
return 0;
}
}
#if 0
- printf ("Node: %x Size %hu (0x%hx)\n",
+ printf("Node: %x Size %hu (0x%hx)\n",
lpDevNode->Node,
lpDevNode->Size,
lpDevNode->Size);
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);
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);
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;
}