E.4.7.3 checking command execution results – Intel Extensible Firmware Interface User Manual
Page 925

32/64-Bit UNDI Specification
Version 1.10
12/01/02
E-59
E.4.7.3
Checking Command Execution Results
After command execution completes, either successfully or not, the
CDB.StatCode
field
contains the result of the command execution.
StatCode Reason
SUCCESS
Command completed successfully. UNDI and network device is now
initialized. DB has been written. Check StatFlags.
INVALID_CDB
One of the CDB fields was not set correctly.
INVALID_CPB
One of the CPB fields was not set correctly.
BUSY
UNDI is already processing commands. Try again later.
QUEUE_FULL
Command queue is full. Try again later.
NOT_STARTED
The UNDI is not started.
ALREADY_INITIALIZED
The UNDI is already initialized.
DEVICE_FAILURE
The network device could not be initialized.
NVDATA_FAILURE
The nonvolatile storage could not be read.
StatFlags
Check the StatFlags to see if there is an active connection to this network device. If the no media
StatFlag is set, the UNDI and network device are still initialized.
PXE_STATFLAGS_INITIALIZED_NO_MEDIA
Before Using the DB
#pragma pack(1)
typedef struct s_pxe_db_initialize {
// Actual amount of memory used from the supplied memory
// buffer. This may be less that the amount of memory
// supplied and may be zero if the UNDI and network device
// do not use external memory buffers. Memory used by the
// UNDI and network device is allocated from the lowest
// memory buffer address.
PXE_UINT32
MemoryUsed;
// Actual number and size of receive and transmit buffers that
// were allocated.
PXE_UINT16
TxBufCnt;
PXE_UINT16
TxBufSize;
PXE_UINT16
RxBufCnt;
PXE_UINT16
RxBufSize
} PXE_DB_INITIALIZE;
#pragma pack()