On 04/07/14 19:32, Sergey Isakov wrote: > > On 07 апр. 2014 г., at 20:45, Laszlo Ersek <[email protected] > <mailto:[email protected]>> wrote: > >> >> I think that your DXE driver should >> - register a protocol notification callback for SimpleFileSystem (with >> gBS->RegisterProtocolNotify(), TPL_CALLBACK level), >> - in the callback function, locate the handles with the new >> SimpleFileSystem interfaces (gBS->LocateHandleBuffer() with >> ByRegisterNotify, in a loop), >> - for each handle, check the device path belonging to the handle >> (gBS->HandleProtocol(), or gBS->OpenProtocol() with GET_PROTOCOL), in >> order to see if (part of) the device path matches what you want, >> - if so, open the SimpleFileSystem interface of the handle, and use it. >> >> Laszlo > > It is not enough. There should be Fat32 file system driver and > PartitionDxe driver. DiskIoDxe as well.
I wrote that the Uhci / Ehci / UsbBus / UsbMassStorage drivers produce the chain up to (and including) BlockIo. I also wrote that BlockIo -> DiskIo -> SimpleFileSystem are installed automatically. Admittedly, I didn't name the partition driver, but that happens automatically too (in OVMF). SimpleFileSystem is produced by the FAT driver. https://github.com/tianocore/edk2-FatPkg/blob/master/EnhancedFatDxe/Init.c#L98 If the callback is registered for SimpleFileSystem, that's already the filesystem level (where the device path leading up to it can be checked, node by node, eg. for MESSAGING_DEVICE_PATH/MSG_USB_DP, and where the root directory can be opened). So what exactly is not enough? Thanks Laszlo ------------------------------------------------------------------------------ Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
