absence of PXE+ structure
Posted: Thu Aug 01, 2019 2:08 am
Hi,
I faced issue about PXE structure. I couldn't found !PXE in pxe pointer of PXENV+ structure. My structure for PXENV+:
When I was in the Protected mode, I switched to real mode for PXE interrupt. After that es and ebx registers got the address of PXENV+ structure.
Then I want to use PXEPtr that has incorrect address. But there is correct Signature, Length, Checksum in PXENV+ structure but PXEPtr has incorrect address or in VMWare workstation PXEPtr has address of PXENV+ structure.
I faced issue about PXE structure. I couldn't found !PXE in pxe pointer of PXENV+ structure. My structure for PXENV+:
Code: Select all
// The Signature of the PXENV+ structure - contains "PXENV+".
uint8_t Signature[6];
// The MSB contains the Major version number, while the LSB contains the minor version number.
uint16_t Version;
// The Length and the checksum of the structure, used for calculating the checksum.
uint8_t Length;
uint8_t Checksum;
// A Far Pointer to the real mode PXE API entry point.
uint32_t RMEntry;
// 32-bit offset to the protected mode API entry point. Instead of this, the !PXE structure is recommended.
uint32_t PMOffset;
// The rest of the fields don't matter much, and the Specifications can be referred.
uint16_t PMSelector;
uint16_t StackSeg;
uint16_t StackSize;
uint16_t BCCodeSeg;
uint16_t BCCodeSize;
uint16_t BCDataSeg;
uint16_t BCDataSize;
uint16_t UNDIDataSeg;
uint16_t UNDIDataSize;
uint16_t UNDICodeSeg;
uint16_t UNDICodeSize;
// This is a far pointer to the "!PXE" structure, only present when the structure is present.
uint32_t PXEPtr;
Then I want to use PXEPtr that has incorrect address. But there is correct Signature, Length, Checksum in PXENV+ structure but PXEPtr has incorrect address or in VMWare workstation PXEPtr has address of PXENV+ structure.