The LLC_BUFFER union represents the buffer for received data. Specify this structure in the LLC_RECEIVE_PARMS structure.
typedef union _LLC_BUFFER LLC_BUFFER, *PLLC_BUFFER;
union _LLC_BUFFER { PLLC_BUFFER pNext; LLC_NEXT_BUFFER Next; struct LlcNextBuffer { LLC_NEXT_BUFFER Header; UCHAR auchData[]; } Buffer; LLC_NOT_CONTIGUOUS_BUFFER NotContiguous; struct { LLC_NOT_CONTIGUOUS_BUFFER Header; UCHAR auchData[]; } NotCont; LLC_CONTIGUOUS_BUFFER Contiguous; struct { LLC_CONTIGUOUS_BUFFER Header; UCHAR auchData[]; } Cont; };
Media Access Control (MAC) frames consist of a LAN header followed by a data field. Non-MAC frames consist of a LAN header, a DLC header, and a data field. The application provides the data in the data field. The DLC header varies depending on the frame type: frames used by Type 2 protocols have a 4-byte DLC header and frames used by Type 1 protocols have a 3-byte header. The frame type also determines what information the application provides and how it is provided, as shown in the following table.
Frame Type |
Description |
MAC Frames |
The application provides the complete LAN header and the data field. The source address in the LAN header is overwritten with the address used by the adapter. |
I-Frames |
The application provides only the data. The information used to build the headers is provided by the LLC_DLC_OPEN_STATION and LLC_DLC_CONNECT_STATION commands. |
Direct Frames |
The application provides the LAN header and the data in its own buffers. It provides the information to build the headers with one of the LLC_TRANSMIT commands. The command overwrites the source address in the LAN header with the address used by the adapter. |
When you use more than one buffer to receive a frame, the format for the first buffer is different from the format of the other buffers used to contain the frame.
AcsLan, LLC_CONTIGUOUS_BUFFER, LLC_NEXT_BUFFER, LLC_NOT_CONTIGUOUS_BUFFER, LLC_RECEIVE_PARMS