Op-Code: |
PXENV_UNDI_INITIALIZE |
Input: |
ES:DI points to a t_PXENV_UNDI_INITIALIZE parameter structure that has been initialized by the caller. |
Output: |
PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE will be returned in AX, with the CF set accordingly. The status field in the parameter structure will be set to one of the values represented by the PXENV_STATUS_xxx constants. |
Description: |
This call resets the adapter and programs it with default parameters. The default parameters used are those supplied to the most recent UNDI_STARTUP call. This routine does not enable the receive and transmit units of the network adapter to readily receive or transmit packets. The application must call PXENV_UNDI_OPEN to logically connect the network adapter to the network. |
|
This call must be made by an application to establish an interface to the network adapter driver. The parameter block to this call contains the pointer to the call-back routines that will be called when a packet is received or when any other interrupt occurs. |
Note: |
When a receive interrupt occurs, the network adapter driver queues the packet and calls the application&rsquo’s callback receive routine with a pointer to the packet received. Then, the callback routine can either copy the packet into its buffer or decide to delay the copy to a later time. The callback receive routine always gets the pointer to the first packet in the receive queue and not to the currently received packet that generated the interrupt. |
|
If the call-back routine decides not to copy the data from the buffer at this time, the packet will remain in the receive queue and, as a result, the later packets might be dropped when the receive queue is full. At a later time, when the application wants to copy the packet, it can call the PXENV_UNDI_force_interrupt routine to simulate the receive interrupt. |
|
When the preboot code makes this call to initialize the network adapter, it passes a NULL pointer for the ProtocolIni field in the parameter structure. |