To answer your question, UEFI provides an API different from that of the BIOS. It is designed to be called from C code, and you are given a table of function pointers when your EFI application starts. Now some clarification on the roles of these functions
When CP\M created the first BIOS in the 70's, the intent was to provide a (very) low level API that an operating system developer could build on and provide their own API that apps would use. MS-DOS used this design. It simplified OS development, and allowed hardware developers to make one driver, and then an OS and the BIOS could access this hardware. The BIOS was designed to be called from real mode, and as time progressed, Intel realized that the x86 needed more security features. So they created 16 bit protected mode. It added memory protection, a 24 bit address bus, and more. However, BIOS functions could not be called from this mode. OS developers had two options, they could, one, develop device drivers for disk, keyboard, and screen themselves, or two, drop down to real mode and call these function and then come back up to protected mode. Intel then designed 32 bit protected mode, and with the increasing need for security and stability, plus the addition of paging, OS developers started making their own drivers. If you want to write an OS with modern features, the you will need to write your own drivers. If you are doing it purely for fun, then feel free to use the BIOS. But know that it has security and stability concerns. Nowadays, the best approach is to have a bootloader enter protected mode for you and load up the kernel and do other things, and then the kernel has its own drivers. My bootloader does all this, and it is easy to make your OS loadable by it. Not to spam, but there is a link in my signature
As for UEFI, it is designed to be used at bootup and then be exited when you get to the kernel, for the same reasons described above.
Hope that make sense
Greetings,
nexos