/* To use this function, the caller must first call the  */
EFI_STATUS EFIAPI FileHandleFindNextFile(IN EFI_FILE_HANDLE DirHandle, OUT EFI_FILE_INFO *Buffer, OUT BOOLEAN *NoFile)
/* To use this function, the caller must first call the  */
EFI_STATUS EFIAPI FileHandleFindNextFile(IN EFI_FILE_HANDLE DirHandle, OUT EFI_FILE_INFO *Buffer, OUT BOOLEAN *NoFile)
{
  EFI_STATUS  Status;
  UINTN       BufferSize;
  if ((DirHandle == NULL) || (Buffer == NULL) || (NoFile == NULL)) {
    return (EFI_INVALID_PARAMETER);
  }
  BufferSize = FIND_XXXXX_FILE_BUFFER_SIZE;
  Status = FileHandleRead (DirHandle, &BufferSize, Buffer);
  ASSERT (Status != EFI_BUFFER_TOO_SMALL);
  if (EFI_ERROR (Status)) {
    return (Status);
  }
  if (BufferSize == 0) {
    FreePool (Buffer);
    *NoFile = TRUE;
  }
  return (EFI_SUCCESS);
}