NDIS_SWITCH_OPTIONAL_HANDLERS structure (ndis.h)

La structure NDIS_SWITCH_OPTIONAL_HANDLERS spécifie les pointeurs vers les fonctions de gestionnaire de commutateur extensible Hyper-V. Ces fonctions peuvent être appelées par une extension de commutateur extensible.

Syntaxe

typedef struct _NDIS_SWITCH_OPTIONAL_HANDLERS {
  NDIS_OBJECT_HEADER                                              Header;
  NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT_HANDLER AllocateNetBufferListForwardingContext;
  NDIS_SWITCH_FREE_NET_BUFFER_LIST_FORWARDING_CONTEXT_HANDLER     FreeNetBufferListForwardingContext;
  NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE_HANDLER                  SetNetBufferListSource;
  NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION_HANDLER             AddNetBufferListDestination;
  NDIS_SWITCH_GROW_NET_BUFFER_LIST_DESTINATIONS_HANDLER           GrowNetBufferListDestinations;
  NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS_HANDLER            GetNetBufferListDestinations;
  NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS_HANDLER         UpdateNetBufferListDestinations;
  NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO_HANDLER                   CopyNetBufferListInfo;
  NDIS_SWITCH_REFERENCE_SWITCH_NIC_HANDLER                        ReferenceSwitchNic;
  NDIS_SWITCH_DEREFERENCE_SWITCH_NIC_HANDLER                      DereferenceSwitchNic;
  NDIS_SWITCH_REFERENCE_SWITCH_PORT_HANDLER                       ReferenceSwitchPort;
  NDIS_SWITCH_DEREFERENCE_SWITCH_PORT_HANDLER                     DereferenceSwitchPort;
  NDIS_SWITCH_REPORT_FILTERED_NET_BUFFER_LISTS_HANDLER            ReportFilteredNetBufferLists;
  NDIS_SWITCH_SET_NET_BUFFER_LIST_SWITCH_CONTEXT_HANDLER          SetNetBufferListSwitchContext;
  NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT_HANDLER          GetNetBufferListSwitchContext;
  PVOID                                                           SwitchPDReserved[NDIS_SWITCH_OPTIONAL_HANDLERS_PD_RESERVED_SIZE];
} NDIS_SWITCH_OPTIONAL_HANDLERS, *PNDIS_SWITCH_OPTIONAL_HANDLERS;

Membres

Header

Type, révision et taille de la structure NDIS_SWITCH_OPTIONAL_HANDLERS . Ce membre est mis en forme en tant que structure NDIS_OBJECT_HEADER .

Le membre Type de l’en-tête doit être défini sur NDIS_OBJECT_TYPE_DEFAULT. Pour spécifier la version de la structure NDIS_SWITCH_OPTIONAL_HANDLERS , le membre Revision de Header doit être défini sur la valeur suivante :

NDIS_SWITCH_OPTIONAL_HANDLERS_REVISION_1

Version d’origine pour NDIS 6.30 et versions ultérieures.

Définissez le membre Taille sur NDIS_SIZEOF_NDIS_SWITCH_NIC_ARRAY_REVISION_1.

AllocateNetBufferListForwardingContext

Pointeur vers la fonction AllocateNetBufferListForwardingContext .

FreeNetBufferListForwardingContext

Pointeur vers la fonction FreeNetBufferListForwardingContext .

SetNetBufferListSource

Pointeur vers la fonction SetNetBufferListSource .

AddNetBufferListDestination

Pointeur vers la fonction AddNetBufferListDestination .

GrowNetBufferListDestinations

Pointeur vers la fonction GrowNetBufferListDestinations .

GetNetBufferListDestinations

Pointeur vers la fonction GetNetBufferListDestinations .

UpdateNetBufferListDestinations

Pointeur vers la fonction UpdateNetBufferListDestinations .

CopyNetBufferListInfo

Pointeur vers la fonction CopyNetBufferListInfo .

ReferenceSwitchNic

Pointeur vers la fonction ReferenceSwitchNic .

DereferenceSwitchNic

Pointeur vers la fonction DereferenceSwitchNic .

ReferenceSwitchPort

Pointeur vers la fonction ReferenceSwitchPort .

DereferenceSwitchPort

Pointeur vers la fonction DereferenceSwitchPort .

ReportFilteredNetBufferLists

Pointeur vers la fonction ReportFilteredNetBufferLists .

SetNetBufferListSwitchContext

GetNetBufferListSwitchContext

SwitchPDReserved[NDIS_SWITCH_OPTIONAL_HANDLERS_PD_RESERVED_SIZE]

Remarques

Les fonctions de gestionnaire de commutateurs extensibles prennent en charge les actions de filtrage et de transfert effectuées par une extension de commutateur extensible. Ces actions incluent :

  • Allouez ou libérez le contexte de transfert. Ces données sont stockées dans les données hors bande (OOB) de la structure NET_BUFFER_LIST d’un paquet. Pour plus d’informations sur le contexte de transfert, consultez Contexte de transfert de commutateur extensible Hyper-V.
  • Obtenez ou définissez les ports de destination contenus dans le contexte de transfert d’un paquet.
  • Ajouter des ports de destination au contexte de transfert d’un paquet.

Lorsque l’extension de commutateur extensible appelle NdisFGetOptionalSwitchHandlers, le paramètre NdisSwitchHandlers contient un pointeur vers une structure NDIS_SWITCH_OPTIONAL_HANDLERS . Une extension de commutateur extensible appelle généralement NdisFGetOptionalSwitchHandlers à partir de sa fonction FilterAttach .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.30 et versions ultérieures.
En-tête ndis.h (inclure Ndis.h)

Voir aussi

AddNetBufferListDestination

AllocateNetBufferListForwardingContext

CopyNetBufferListInfo

DereferenceSwitchNic

DereferenceSwitchPort

FilterAttach

FreeNetBufferListForwardingContext

GrowNetBufferListDestinations

NDIS_OBJECT_HEADER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

ReferenceSwitchNic

ReferenceSwitchPort

ReportFilteredNetBufferLists

SetNetBufferListSource

UpdateNetBufferListDestinations