Hello,

I'm implementing an UEFI driver that, in its Start() function, installs an
EFI_FILE_SYSTEM_PROTOCOL instance in the controller handle passed as
argument.
My expectation was that, once I had a consistent implementation for this
protocol(and the underlying EFI_FILE_PROTOCOL returned by it), I'd be able
to navigate through this filesystem using the shell as already happens with
FAT volumes.
After loading the driver and executing "map -r", a new volume/alias
appears(as *fsnt0:*, since the driver doesn't install an
EFI_BLOCK_IO_PROTOCOL), but I can't perform any filesystem operations on it
through the shell(trying to "ls" in it, for example, makes it loop
infinitely through several calls to Open, Close and GetInfo). When I
investigated what might have gone wrong, I noticed some hints(in the specs
and the source code itself) that seem to indicate that the shell assumes a
FAT filesystem or, at least, the existence of an EFI_BLOCK_IO_PROTOCOL
under the same handle.

So here is my question: in order to navigate through a volume using the
shell, is it enough to provide a new EFI_FILE_SYSTEM_PROTOCOL instance? If
not, what other assumptions are made by the shell? Are there any
differences in the assumptions made by the shell versions?
The shell version I'm using is 2.31.

Thanks in advance,

-- 
[image: LSBD] <http://www.lsbd.ufc.br/>
*Felipe Martins Mesquita*

Technical Lead

BSc in Computer Science - UFC

GTalk: felipe.mesqu...@lsbd.ufc.br

Skype: felipe.martins23
------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to