32/64-bit UNDI Specification
Version 1.02 12/12/00 433
G.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 non-volatile 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()