NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO unione (ndis.h)
L'unione NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO specifica le informazioni per l'inoltro di un pacchetto a una o più porte estendibili Hyper-V.
Queste informazioni sono contenute nei dati fuori banda (OOB) della struttura di NET_BUFFER_LIST del pacchetto.
Sintassi
typedef union _NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO {
UINT64 AsUINT64;
struct {
UINT32 NumAvailableDestinations : 16;
UINT32 SourcePortId : 16;
UINT32 SourceNicIndex : 8;
UINT32 NativeForwardingRequired : 1;
#if ...
UINT32 Reserved1 : 1;
#else
UINT32 Reserved1 : 2;
#endif
UINT32 IsPacketDataSafe : 1;
UINT32 SafePacketDataSize : 12;
UINT32 IsPacketDataUncached : 1;
UINT32 IsSafePacketDataUncached : 1;
UINT32 Reserved2 : 7;
};
} NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO, *PNDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO;
Members
AsUINT64
Valore di NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO a 64 bit completo.
NumAvailableDestinations
Valore che specifica il numero di porte di destinazione estendibili inutilizzate all'interno di una struttura NET_BUFFER_LIST . Per altre informazioni, vedere la sezione Osservazioni.
SourcePortId
Identificatore della porta di commutatore estendibile di origine da cui è stata generata la NET_BUFFER_LIST .
SourceNicIndex
Valore UINT32 che specifica l'indice della scheda di rete di origine connessa alla porta di commutatore estendibile specificata dal membro SourcePortId .
Per altre informazioni su questo valore di indice, vedere Valori dell'indice della scheda di rete.
NativeForwardingRequired
Se questo membro è impostato su TRUE, il pacchetto è un pacchetto NVGRE e il componente HNV (Hyper-V Network Virtualization) del commutatore estendibile Hyper-V inoltra questo pacchetto. Per altre informazioni, vedere Inoltro ibrido.
Questo flag non deve essere scritto in da alcuna estensione.
Reserved1
Questo membro è riservato per l'uso futuro da parte di NDIS.
Questo membro è riservato per l'uso futuro da parte di NDIS.
IsPacketDataSafe
Se questo membro è impostato su TRUE, tutti i dati del pacchetto provengono dalla memoria host attendibile.
SafePacketDataSize
Valore che specifica il numero di byte consecutivi nei dati dei pacchetti che si trovano nella memoria host attendibile. Questo valore si trova in unità di byte dall'inizio dei dati del pacchetto. Il resto dei dati del pacchetto (se presente) dopo il valore SafePacketDataSize si trova nella memoria condivisa non attendibile a cui si accede dalle partizioni figlio e padre Hyper-V.
Per altre informazioni, vedere la sezione Osservazioni.
IsPacketDataUncached
Se questo flag non è impostato, l'intero pacchetto viene memorizzato nella cache. Se è impostata, parte o tutti i dati non vengono memorizzati nella cache. Se impostato, controllare il campo IsSafePacketDataUncached per verificare se almeno la parte SafePacketData viene memorizzata nella cache.
IsSafePacketDataUncached
Se il flag IsPacketDataUncached è impostato, questo campo indica se la parte SafePacketData del pacchetto viene memorizzata nella cache. In tal caso, vedere il campo SafePacketDataSize per il numero di byte memorizzati nella cache.
Reserved2
Questo membro è riservato per l'uso futuro da parte di NDIS.
Commenti
Le estensioni di commutatori estendibili possono usare la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL per accedere all'unione NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO in una struttura NET_BUFFER_LIST .
Il membro NumAvailableDestinations dell'unione NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO specifica il numero di elementi della porta di destinazione estendibili inutilizzati all'interno di una struttura NET_BUFFER_LIST . Ogni porta di destinazione del commutatore estendibile viene specificata da un elemento NDIS_SWITCH_PORT_DESTINATION all'interno della strutturaNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY di una struttura NET_BUFFER_LIST. L'estensione del commutatore estendibile chiama GetNetBufferListDestinations per ottenere la NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY corrente in una struttura NET_BUFFER_LIST .
Il membro NativeForwardingRequired specifica se il pacchetto è un pacchetto NVGRE o meno. Se è TRUE, il pacchetto è un pacchetto NVGRE e l'estensione di inoltro non determina la matrice di porte di destinazione di inoltro del pacchetto, anche se può aggiungere o escludere porte di destinazione nella matrice. Per altre informazioni, vedere Inoltro ibrido.
Il flag IsPacketDataUncached può aiutare le estensioni di commutatori estendibili a determinare se parte o tutti i dati del pacchetto vengono memorizzati nella cache o meno. Se questo flag è impostato, parte o tutti i dati non vengono memorizzati nella cache e il flag IsSafePacketDataUncached indica l'estensione se la parte dei dati dei pacchetti sicuri viene memorizzata nella cache. Se i dati dei pacchetti sicuri vengono memorizzati nella cache, il membro SafePacketDataSize specifica il numero di byte memorizzati nella cache.
SafePacketDataSize specifica le dimensioni dei dati del pacchetto che si trovano in locale o attendibile, memoria nel sistema operativo padre della partizione padre Hyper-V. Questa memoria non è accessibile dalla partizione figlio. Pertanto, è considerato "sicuro" dagli aggiornamenti non sincronizzati dal sistema operativo guest in esecuzione in tale partizione.
Se un'estensione del commutatore estendibile richiede uno spazio più attendibile per controllare i dati dei pacchetti, è necessario seguire questa procedura:
- L'estensione deve duplicare la struttura NET_BUFFER_LIST del pacchetto allocando una struttura NET_BUFFER_LIST e NET_BUFFER. L'estensione chiama quindi NdisCopyFromNetBufferToNetBuffer per duplicare la struttura NET_BUFFER del pacchetto. Se questa funzione viene completata correttamente, i dati del pacchetto vengono copiati nella memoria attendibile.
- L'estensione deve chiamare CopyNetBufferListInfo per copiare i dati OOB del pacchetto duplicato.
- Dopo aver duplicato il pacchetto originale, l'estensione deve ottenere l'unione NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO nel pacchetto duplicato usando la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL . L'estensione deve impostare il membro IsPacketDataSafe su TRUE.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.30 e versioni successive. |
Intestazione | ndis.h (includere Ndis.h) |
Vedi anche
Inoltro di pacchetti a porte di commutatore estendibili Hyper-V
Inoltro di pacchetti a schede di rete fisiche
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per