首页 > 解决方案 > 如何从保护模式(或 C 代码)调用 PXE API?

问题描述

我正计划为我希望使用内置在网卡中的 PXE 网络堆栈进行 UDP 和 TFTP 调用的架构x86编写引导加载程序。x64我看到有一个可以使用的PXE API。但是,我想编写尽可能少的程序集,并希望在 C 中实现 UDP/TFTP 通信(这将是一个两阶段引导加载程序,只需最少的程序集即可从 BIOS 转换,主要逻辑将驻留在第二阶段用 C) 编写。我假设我的 C 代码只能在保护模式下运行,而 PXE API 只能在实模式下调用。所以我的问题是,为了调用 PXE,我是否必须暂时转换回实模式?我听说这样做并非没有危险。任何帮助将不胜感激。

标签: bootloader

解决方案


PXE API seems to have a dedicated entry point for 32-bit protected mode called EntryPointESP. Since I haven't tried it yet, I am not sure about all the details, but it should work. Consult PXE spec for more information.


推荐阅读