- for ( Status = FileHandleFindFirstFile (DirHandle, &FileInfo)\r
- ; !EFI_ERROR (Status) && !NoFile\r
- ; Status = FileHandleFindNextFile (DirHandle, FileInfo, &NoFile)\r
- ){\r
- if ((FileInfo->Attribute & (EFI_FILE_SYSTEM | EFI_FILE_ARCHIVE)) == 0) {\r
- continue;\r
+ do {\r
+ Status = FileHandleFindFirstFile (DirHandle, &FileInfo);\r
+ if (EFI_ERROR (Status) || FileInfo == NULL) {\r
+ Print (L"Get File Info Fail. Status = %r\n", Status);\r
+ goto Done;\r
+ }\r
+\r
+ if ((FileInfo->Attribute & (EFI_FILE_SYSTEM | EFI_FILE_ARCHIVE)) != 0) {\r
+ FileInfoBuffer[Index++] = AllocateCopyPool ((UINTN)FileInfo->Size, FileInfo);\r