[This is preliminary documentation and subject to change.]
The PacketBufferComplete function informs the MMR that the virtual interface is done processing a packet and provides status on the completed packet.
void PacketBufferComplete(
IN PACKET_BUFFER *Packet,
IN DWORD dwStatus
);
Value | Meaning |
---|---|
PACKET_COMPLETE_FAILURE | A failure occurred in processing the packet. |
PACKET_COMPLETE_NO_ROUTE | The virtual interface was unable to route the packet. |
PACKET_COMPLETE_OVERFLOW | The virtual interface cannot process the packet synchronously and lacks queue space to process the packet asynchronously. |
PACKET_COMPLETE_SUCCESS | Processing of the packet completed successfully. |
None
The MMR implements PacketBufferComplete as an inline function in the Packet.h header file; the Bridge.h header file includes Packet.h. The PacketBufferComplete implementation calls the CompletionFunc member of the PACKET_BUFFER structure for the passed in packet.
Virtual interface DLLs can be implemented for particular output systems that use first-in-first-out (FIFO) chips of a fixed-length in the range of 32 to 64 slots. If such a virtual interface fills the output system's FIFO before transmitting all the packet data, then the virtual interface must inform the MMR that it is done processing the packet with a status value of PACKET_COMPLETE_OVERFLOW.