32/64-bit UNDI Specification
Version 1.02 12/12/00 441
G.4.11.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. Check StatFlags. DB is written.
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.
NOT_INITIALIZED The UNDI is not initialized.
StatFlags
The receive filter settings in CDB.StatFlags are:
PXE_STATFLAGS_RECEIVE_FILTER_UNICAST
PXE_STATFLAGS_RECEIVE_FILTER_BROADCAST
PXE_STATFLAGS_RECEIVE_FILTER_FILTERED_MULTICAST
PXE_STATFLAGS_RECEIVE_FILTER_PROMISCUOUS
PXE_STATFLAGS_RECEIVE_FILTER_ALL_MULTICAST
Unsupported receive filter settings in OpFlags are promoted to the next more liberal receive filter
setting. For example: If broadcast or filtered multicast are requested and are not supported by the
network device, but promiscuous is; the promiscuous status flag will be set.
DB
The DB is used to read the current multicast MAC address filter list. The CDB.DBsize and
CDB.DBaddr fields can be set to PXE_DBSIZE_NOT_USED and PXE_DBADDR_NOT_USED if
the multicast MAC address filter list does not need to be read. When reading the multicast MAC
address filter list extra entries in the DB will be filled with zero.
typedef struct s_pxe_db_receive_filters {
// Filtered multicast MAC address list.
PXE_MAC_ADDR MCastList[n];
} PXE_DB_RECEIVE_FILTERS;