UEFI TCP4 Protocol not found when starting application without EFI Shell

128 Views Asked by At

I'm currently trying to implement Networking in my UEFI bootloader but failing to find the Tcp4 Service Binding Protocol when starting it from any device (VMware, real hardware) by renaming it to bootx64.efi and placing it in /efi/boot/. However when firstly starting EDK2's UEFI Shell and then from there executing my UEFI Application the Protocol gets found.

gBS->LocateProtocol(&gEfiTcp4ServiceBindingProtocolGuid, NULL, (VOID**)&tcp4_binding_protocol);

This returns NOT_FOUND when running it directly and SUCCESS when running it through UEFI Shell.

I tried including the NetworkPkg in my .dsc File:

[LibraryClasses]
    !include NetworkPkg/NetworkLibs.dsc.inc

and then specifying the necessary libraries inside my .inf file for the application


[LibraryClasses]
    NetLib
    IpIoLib
    TcpIoLib

None of this seems to have any real effect on the end result and according to the UEFI Spec all there is to do is to find this protocol which doesn't exist for me.

Help would be very much appreciated!

0

There are 0 best solutions below