Hi there,

 

today I wasn't sure which module types my (DXE) library actually supports,
so I had a look at the modules writers guide here:

https://github.com/tianocore-docs/Docs/raw/master/User_Docs/EDK_II%20Module%
20Writer_s%20Guide_0_7.pdf

At section 3.1.1 there is a list of module types with a brief introduction.

So I was looking for suitable types.

 

DXE_DRIVER is for DXE phase and gets destroyed after ExitBootServices.

Okay.

 

DXE_RUNTIME_DRIVER doesn't get destroyed but have to make sure the pointer
will not break on SetVirtualAddressMap().

Got it.

 

UEFI_DRIVER is used for drivers that are "compliant with UEFI
Specification". What does that actually mean?

I mean: Are they alive until ExitBootServices() or longer with the need to
take care of SetVirtualAddressMap()?

Haven't found any information about that yet, maybe someone can help here?

 

UEFI_APPLICATION is used by applications which are "compliant with UEFI
Specification".

Afaik this could be a bootloader, a shell oder a shell application, right?

So I think the lifetime of this module starts and ends before
ExitBootServices() like a DXE_DRIVER.

However, at least until the application is going to call ExitBootServices()
by itself or uses SetVirtualAddressMap().

Oh, and thinking of CTRL+C at shell it should be able to release all
resourses at any time, correct?

 

Thank you,

  Peter

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to