Preparing the CPB
If the
MemoryRequired
Initialize command does not need to be given a memory buffer or even a CPB structure. If the
MemoryRequired
#pragma pack(1)
typedef struct s_pxe_cpb_initialize {
// Address of first (lowest) byte of the memory buffer.
// buffer must be in contiguous physical memory and cannot be
// swapped out.
// receive buffering.
PXE_UINT64 MemoryAddr;
// MemoryLength must be greater than or equal to MemoryRequired
// returned by the Get Init Info command.
PXE_UINT32 MemoryLength;
// Desired link speed in Mbit/sec.
// 10, 100 and 1000.
// and/or use the default link speed (operation depends on
// UNDI/NIC functionality).
PXE_UINT32 LinkSpeed;
// Suggested number and size of receive and transmit buffers to
// allocate.
// allocation comes out of the supplied memory buffer.
// MemoryAddr and MemoryLength are zero, this allocation comes
// out of memory on the NIC.
// If these fields are set to zero, the UNDI will allocate buffer
// counts and sizes as it sees fit.
PXE_UINT16 TxBufCnt;
PXE_UINT16 TxBufSize;
PXE_UINT16 RxBufCnt;
PXE_UINT16 RxBufSize;
Version 1.02
field returned in the
field is non-zero, the Initialize command does need a memory buffer.
The UNDI
will be using this for transmit and
Setting a value of zero will auto-detect
If MemoryAddr and MemoryLength are non-zero, this
32/64-bit UNDI Specification
PXE_DB_GET_INIT_INFO
Common ethernet values are
12/12/00
structure is zero, the
This
If
431
Need help?
Do you have a question about the Extensible Firmware Interface and is the answer not in the manual?