34 IN EFI_FILE_PROTOCOL *File,
35 IN EFI_GUID *InformationType,
36 IN UINTN MinFileInfoSize,
37 OUT UINTN *RealFileInfoSize OPTIONAL
46 FileInfoBuffer = NULL;
48 Status = File->GetInfo (
55 if ((Status == EFI_BUFFER_TOO_SMALL) && (FileInfoSize >= MinFileInfoSize)) {
63 FileInfoBuffer = AllocateZeroPool (FileInfoSize);
65 if (FileInfoBuffer != NULL) {
66 Status = File->GetInfo (
73 if (!EFI_ERROR (Status)) {
74 if (RealFileInfoSize != NULL) {
75 *RealFileInfoSize = FileInfoSize;
78 FreePool (FileInfoBuffer);
80 FileInfoBuffer = NULL;
85 return FileInfoBuffer;