> On Sep 27, 2016, at 2:03 AM, GN Keshava <[email protected]> wrote:
>
> Hi all,
>
>
> I'm trying to open a file from my UEFI application. The path of file is
>
> fs1:/myfolder/myfile.txt
>
Keshava,
The volume names are EFI Shell concepts, not UEFI Firmware concepts. Basically
the Shell uses "fs1:" to match one of the Simple File System Handles. There is
also an EFI Device Path on the handle with the Simple File System Handle and
that is what maps to "fs1".
So if you want to use these shell volume names you need to use Shell APIs.
Thanks,
Andrew Fish
> The code :
>
> efiStatus = bs->LocateHandleBuffer(ByProtocol,
> &sfspGuid,
> NULL,
> &handleCount,
> &handles);
>
> for (index = 0; index < (int)handleCount; ++ index)
> {
> EFI_SIMPLE_FILE_SYSTEM_PROTOCOL* fs = NULL;
>
> efiStatus = bs->HandleProtocol(
> handles[index],
> &sfspGuid,
> (void**)&fs);
>
> EFI_FILE_PROTOCOL* root = NULL;
> ...
> efiStatus = fs->OpenVolume(fs, &root);
>
> EFI_FILE_PROTOCOL* token = NULL;
>
> efiStatus = root->Open(
> root,
> &token,
> L"myfolder\\myfile.txt",
> EFI_FILE_MODE_READ,
> EFI_FILE_READ_ONLY | EFI_FILE_HIDDEN | EFI_FILE_SYSTEM);
> }
>
> But using this method, I can only go through all the file system handles
> and open each volume and try opening my file.
>
> But I want to give full path to my file and open it in it's volume.
>
> How can I acheive this?
> Thanks.
> With regards,
> Keshava GN
> _______________________________________________
> edk2-devel mailing list
> [email protected] <mailto:[email protected]>
> https://lists.01.org/mailman/listinfo/edk2-devel
> <https://lists.01.org/mailman/listinfo/edk2-devel>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel