case PERF_EVENTSIGNAL_END_ID:\r
case PERF_CALLBACK_START_ID:\r
case PERF_CALLBACK_END_ID:\r
- if (String == NULL) {\r
+ if (String == NULL || Guid == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
- //\r
- // Cache the event guid in string event record when PcdEdkiiFpdtStringRecordEnableOnly == TRUE\r
- //\r
- CopyGuid (&ModuleGuid, Guid);\r
StringPtr = String;\r
+ if (AsciiStrLen (String) == 0) {\r
+ StringPtr = "unknown name";\r
+ }\r
if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
FpdtRecordPtr.DualGuidStringEvent->Header.Type = FPDT_DUAL_GUID_STRING_EVENT_TYPE;\r
FpdtRecordPtr.DualGuidStringEvent->Header.Length = sizeof (FPDT_DUAL_GUID_STRING_EVENT_RECORD);\r
FpdtRecordPtr.DynamicStringEvent->Header.Revision = FPDT_RECORD_REVISION_1;\r
FpdtRecordPtr.DynamicStringEvent->ProgressID = PerfId;\r
FpdtRecordPtr.DynamicStringEvent->Timestamp = TimeStamp;\r
- CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, &ModuleGuid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+ if (Guid != NULL) {\r
+ //\r
+ // Cache the event guid in string event record.\r
+ //\r
+ CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, Guid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+ } else {\r
+ CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, &ModuleGuid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+ }\r
if (AsciiStrLen (StringPtr) == 0) {\r
StringPtr = "unknown name";\r
}\r