Sending 802.1Q-Marked Packets (NDIS 5.1)
Note NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.
A miniport driver that supports 802.1Q must insert 802.1Q information into a packet that the driver transmits over the network. The information includes the driver's configured VLAN ID and the VLAN ID in the per-packet information.
Before inserting 802.1Q information into a packet, the miniport driver retrieves per-packet VLAN information by calling the NDIS_PER_PACKET_INFO_FROM_PACKETmacro with the InfoType parameter set to Ieee8021Qinfo.
The following code example shows how a miniport driver:
Retrieves the 802.1Q values that are contained in the packet descriptor that the pPacketDesc variable points to.
Assigns the priority and VLAN ID values to the UserPriority and VlanID variables, respectively.
NDIS_PACKET_8021Q_INFO VlanPriInfo;
UINT32 UserPriority;
UINT32 VlanID;
VlanPriInfo.Value =
NDIS_PER_PACKET_INFO_FROM_PACKET(pPacketDesc, Ieee8021QInfo);
UserPriority = VlanPriInfo.TagHeader.UserPriority;
VlanID = VlanPriInfo.TagHeader.VlanId;
The miniport driver will generate the tag header by using its own heuristics.