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

Page 925

Advertising
background image

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()

Advertising