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!