32/64-Bit UNDI Specification
Version 1.10 12/01/02 E-41
E.4.2 Get State
This command is used to determine the operational state of the UNDI. An UNDI has three possible
operational states:
Stopped:
A stopped UNDI is free for the taking. When all interface numbers (IFnum)
for a particular S/W UNDI are stopped, that S/W UNDI image can be relocated or
removed. A stopped UNDI will accept Get State
and Start commands.
Started:
A started UNDI is in use. A started UNDI will accept Get State, Stop,
Get Init Info
, and Initialize commands.
Initialized:
An initialized UNDI is in used. An initialized UNDI will accept all
commands except: Start, Stop, and Initialize.
Drivers, NBPs, and applications should not use UNDIs that are already started or initialized.
No other operational checks are made by this command. If this is a S/W UNDI, the
PXE_START_CPB.Delay() and PXE_START_CPB.Virt2Phys() callbacks will
not be used.
E.4.2.1 Issuing the Command
To issue a Get State command, create a CDB and fill it in as shown in the table below:
CDB Field How to initialize the CDB structure for a Get State command
OpCode
PXE_OPCODE_GET_STATE
OpFlags
PXE_OPFLAGS_NOT_USED
CPBsize
PXE_CPBSIZE_NOT_USED
DBsize
PXE_DBSIZE_NOT_USED
CPBaddr
PXE_CPBADDR_NOT_USED
DBaddr
PXE_DBADDR_NOT_USED
StatCode
PXE_STATCODE_INITIALIZE
StatFlags
PXE_STATFLAGS_INITIALIZE
IFnum
A valid interface number from zero to !PXE.IFcnt
Control Set as needed