NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION callback function (ndis.h)
The AddNetBufferListDestination function adds a single destination port for a packet that is specified by a NET_BUFFER_LIST structure.
Syntax
NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION NdisSwitchAddNetBufferListDestination;
NDIS_STATUS NdisSwitchAddNetBufferListDestination(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList,
[in] PNDIS_SWITCH_PORT_DESTINATION Destination
)
{...}
Parameters
[in] NdisSwitchContext
An NDIS_SWITCH_CONTEXT value that contains the handle of the extensible switch module to which the Hyper-V extensible switch extension is attached. When the extension calls NdisFGetOptionalSwitchHandlers, this handle is returned through the NdisSwitchContext parameter.
[in, out] NetBufferList
A pointer to a NET_BUFFER_LIST structure for a packet.
[in] Destination
A pointer to an NDIS_SWITCH_PORT_DESTINATION structure. This structure specifies the destination extensible switch port that the packet will be forwarded to.
Return value
If the call succeeds, the function returns NDIS_STATUS_SUCCESS. Otherwise, it returns an NDIS_STATUS_Xxx error code that is defined in Ndis.h.
Remarks
The forwarding extensible switch extension calls AddNetBufferListDestination to define a single extensible switch destination port for a packet. The extension specifies this port by initializing an NDIS_SWITCH_PORT_DESTINATION structure. The extension sets the Destination parameter to a pointer to this structure. For more information on how to specify an extensible switch destination port, see Managing Hyper-V Extensible Switch Destination Port Data.
- Only forwarding extensions can call AddNetBufferListDestination to add a destination port for a packet. For more information on this type of extension, see Forwarding Extensions.
-
If the forwarding extension is originating a packet with one destination port, the extension must first call the AllocateNetBufferListForwardingContext function. This function allocates the extensible switch forwarding context for the packet. This data contains the extensible switch source and destination ports within the out-of-band (OOB) information for the packet.
For more information about this context, see Hyper-V Extensible Switch Forwarding Context.
-
After the extension modifies the destination port information in the NDIS_SWITCH_PORT_DESTINATION structure, it calls AddNetBufferListDestination to commit the changes to the NET_BUFFER_LIST structure for the packet.
Note For performance reasons, the extension should not call the UpdateNetBufferListDestinations function to commit the changes for the packet.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported in NDIS 6.30 and later. |
Target Platform | Desktop |
Header | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
See also