}
case BusQueryHardwareIDs:
case BusQueryCompatibleIDs: {
- ULONG Index;
+ LONG Index;
ULONG Length;
Type = REG_MULTI_SZ;
+ Index = ARRAYSIZE(PdoRevision) - 1;
+
Length = Id.MaximumLength;
- for (Index = 0; Index < ARRAYSIZE(PdoRevision); Index++) {
+ while (Index >= 0) {
PXENBUS_PDO_REVISION Revision = &PdoRevision[Index];
- status = RtlStringCbPrintfW(Buffer,
- Length,
- L"XENBUS\\VEN_%hs&DEV_%hs&REV_%08X",
- __PdoGetVendorName(Pdo),
- __PdoGetName(Pdo),
- Revision->Number);
+ status = RtlStringCbPrintfW(Buffer,
+ Length,
+ L"XENBUS\\VEN_%hs&DEV_%hs&REV_%08X",
+ __PdoGetVendorName(Pdo),
+ __PdoGetName(Pdo),
+ Revision->Number);
ASSERT(NT_SUCCESS(status));
Buffer += wcslen(Buffer);
Buffer++;
Length -= sizeof (WCHAR);
+
+ --Index;
}
status = RtlStringCbPrintfW(Buffer,