NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ndis.h

typedef struct _NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY {
  NDIS_OBJECT_HEADER Header;
  UINT32             ElementSize;
  UINT32             NumElements;
  UINT32             NumDestinations;
  PVOID              FirstElement;
} NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY, *PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY;

View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-ndis-_ndis_switch_forwarding_destination_array)

_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure

Description

The NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure specifies an array of Hyper-V extensible switch destination ports for a packet. Each element in the array is formatted as an NDIS_SWITCH_PORT_DESTINATION structure.

This information is contained in the out-of-band (OOB) data of the packet's NET_BUFFER_LIST structure.

Members

The type, revision, and size of the NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure. This member is formatted as an NDIS_OBJECT_HEADER structure.

The Type member of Header must be set to NDIS_OBJECT_TYPE_DEFAULT. To specify the version of the NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure, the Revision member of Header must be set to the following value:

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

Original version for NDIS 6.30 and later.

Set the Size member to NDIS_SIZEOF_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1.

ElementSize

A ULONG value that specifies the size, in bytes, of each NDIS_SWITCH_PORT_DESTINATION element that follows the NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure.

NumElements

A ULONG value that specifies the total number of NDIS_SWITCH_PORT_DESTINATION elements in the NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure.

The value of the NumElements member specifies the number of currently used NDIS_SWITCH_PORT_DESTINATION elements (as specified by the NumDestinations member) plus the number of elements that are available for new destination ports. The number of unused NDIS_SWITCH_PORT_DESTINATION elements in the NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure is calculated by (NumElements - NumDestinations).

NumDestinations

A ULONG value that specifies the number of NDIS_SWITCH_PORT_DESTINATION elements in the NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure that specify port destinations.

Note If NumElements is set to zero, this member is ignored.

FirstElement

A pointer to the first NDIS_SWITCH_PORT_DESTINATION element in the buffer that contains the NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure and all its elements.

Remarks

The extensible switch extension can do the following with the destination ports in a packet's NET_BUFFER_LIST structure:

Extensible switch extensions can use the NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX macro to access NDIS_SWITCH_PORT_DESTINATION elements in an NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY array.

See also

Adding Extensible Switch Destination Port Data to a Packet

Excluding Packet Delivery to Extensible Switch Destination Ports

Forwarding Extensions

GetNetBufferListDestinations

Hybrid Forwarding

NDIS_OBJECT_HEADER

NDIS_SWITCH_PORT_DESTINATION

NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX

NET_BUFFER_LIST

Overview of the Hyper-V Extensible Switch

UpdateNetBufferListDestinations