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