On 04/07/14 20:17, Laszlo Ersek wrote:
> 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?

Ah, nevermind. I understand. I didn't list the driver modules that
produced these protocols.

I considered them ubiquitous.

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

Reply via email to