PIDStr = GetNextParamStr (&TextDeviceNode);\r
if (UsbClassText->ClassExist) {\r
ClassStr = GetNextParamStr (&TextDeviceNode);\r
- UsbClass->DeviceClass = (UINT8) Strtoi (ClassStr);\r
+ if (*ClassStr == L'\0') {\r
+ UsbClass->DeviceClass = 0xFF;\r
+ } else {\r
+ UsbClass->DeviceClass = (UINT8) Strtoi (ClassStr);\r
+ }\r
} else {\r
UsbClass->DeviceClass = UsbClassText->Class;\r
}\r
if (UsbClassText->SubClassExist) {\r
SubClassStr = GetNextParamStr (&TextDeviceNode);\r
- UsbClass->DeviceSubClass = (UINT8) Strtoi (SubClassStr);\r
+ if (*SubClassStr == L'\0') {\r
+ UsbClass->DeviceSubClass = 0xFF;\r
+ } else {\r
+ UsbClass->DeviceSubClass = (UINT8) Strtoi (SubClassStr);\r
+ }\r
} else {\r
UsbClass->DeviceSubClass = UsbClassText->SubClass;\r
}\r
\r
ProtocolStr = GetNextParamStr (&TextDeviceNode);\r
\r
- UsbClass->VendorId = (UINT16) Strtoi (VIDStr);\r
- UsbClass->ProductId = (UINT16) Strtoi (PIDStr);\r
- UsbClass->DeviceProtocol = (UINT8) Strtoi (ProtocolStr);\r
+ if (*VIDStr == L'\0') {\r
+ UsbClass->VendorId = 0xFFFF;\r
+ } else {\r
+ UsbClass->VendorId = (UINT16) Strtoi (VIDStr);\r
+ }\r
+ if (*PIDStr == L'\0') {\r
+ UsbClass->ProductId = 0xFFFF;\r
+ } else {\r
+ UsbClass->ProductId = (UINT16) Strtoi (PIDStr);\r
+ }\r
+ if (*ProtocolStr == L'\0') {\r
+ UsbClass->DeviceProtocol = 0xFF;\r
+ } else {\r
+ UsbClass->DeviceProtocol = (UINT8) Strtoi (ProtocolStr);\r
+ }\r
\r
return (EFI_DEVICE_PATH_PROTOCOL *) UsbClass;\r
}\r