struttura NDIS_RECEIVE_QUEUE_PARAMETERS (ntddndis.h)
La struttura NDIS_RECEIVE_QUEUE_PARAMETERS contiene i parametri di configurazione di una coda di ricezione.
Sintassi
typedef struct _NDIS_RECEIVE_QUEUE_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_RECEIVE_QUEUE_TYPE QueueType;
NDIS_RECEIVE_QUEUE_ID QueueId;
NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
GROUP_AFFINITY ProcessorAffinity;
ULONG NumSuggestedReceiveBuffers;
ULONG MSIXTableEntry;
ULONG LookaheadSize;
NDIS_VM_NAME VmName;
NDIS_QUEUE_NAME QueueName;
ULONG PortId;
ULONG InterruptCoalescingDomainId;
NDIS_QOS_SQ_ID QosSqId;
} NDIS_RECEIVE_QUEUE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_PARAMETERS;
Membri
Header
Tipo, revisione e dimensione della struttura NDIS_RECEIVE_QUEUE_PARAMETERS. Questo membro viene formattato come struttura NDIS_OBJECT_HEADER.
Il driver miniport deve impostare il membro type di Header su NDIS_OBJECT_TYPE_DEFAULT. Per specificare la versione della struttura di NDIS_NIC_SWITCH_CAPABILITIES, il driver deve impostare il membro revision di Header su uno dei valori seguenti:
NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3
Aggiunta del campo QosSqId per NDIS 6.50.
Impostare il membro dimensioni su NDIS_SIZEOF_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3.
NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2
Aggiunta di membri aggiuntivi per NDIS 6.30.
Impostare il membro dimensioni su NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_2.
NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1
Versione originale per NDIS 6.20.
Impostare il membro dimensioni su NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_1.
Flags
Valore di ULONG che contiene un OR bit per bit dei flag seguenti. I flag seguenti sono validi per l'OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE e il set di OID_RECEIVE_FILTER_QUEUE_PARAMETERS e l'OID di query:
NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION
Il driver miniport non deve combinare pacchetti di rete per altre code di ricezione con i pacchetti per questa coda in una singola chiamata alla funzione NdisMIndicateReceiveNetBufferLists.
NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED
La scheda di rete deve dividere un pacchetto ricevuto in corrispondenza di un offset uguale o maggiore della dimensione lookahead richiesta e usare DMA per trasferire i dati lookahead e i dati post-lookahead in segmenti di memoria condivisa separati.
Nota
A partire da NDIS 6.30, la suddivisione dei dati dei pacchetti in buffer lookahead separati non è più supportata. I driver Miniport che supportano NDIS 6.30 o versioni successive devono ignorare questo flag.
I flag seguenti sono validi per l'OID del set di OID_RECEIVE_FILTER_QUEUE_PARAMETERS e NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS indicazione dello stato:
NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED
L'impostazione nel membro flag di è stata modificata.
NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED
L'impostazione nel membro ProcessorAffinity modificato.
NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED
L'impostazione nel NumSuggestedReceiveBuffers membro è stata modificata.
NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED
L'impostazione nel membro queueName è stata modificata.
Nota
Un driver determina quali parametri della coda di ricezione sono stati modificati eseguendo un'operazione di AND bit per bit tra la definizione di NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK e il valore nel membro flag di. Se il risultato è zero, non sono stati modificati parametri della coda di ricezione.
QueueType
Valore di enumerazione NDIS_RECEIVE_QUEUE_TYPE che specifica il tipo della coda di ricezione.
QueueId
Valore di tipo NDIS_RECEIVE_QUEUE_ID che contiene un identificatore della coda di ricezione. Questo identificatore è un valore intero compreso tra zero e il numero di code supportate dalla scheda di rete. Il valore NDIS_DEFAULT_RECEIVE_QUEUE_ID specifica la coda di ricezione predefinita.
QueueGroupId
Questo membro è riservato per NDIS.
ProcessorAffinity
Valore GROUP_AFFINITY che specifica il numero di gruppo e una bitmap delle CPU a cui è possibile associare la coda. È necessario specificare almeno un processore. Pertanto, il valore non deve essere zero.
NumSuggestedReceiveBuffers
Valore ULONG che contiene un valore suggerito per il numero di buffer di ricezione che la scheda di rete deve usare per supportare la coda. Questo numero può essere regolato in relazione alle risorse disponibili dal driver miniport o in proporzione al numero utilizzato dalla scheda di rete per altre code. Ad esempio, il numero effettivo di buffer di ricezione può essere doppio o metà di questo valore suggerito.
MSIXTableEntry
Questo membro è riservato per NDIS.
LookaheadSize
Valore ULONG per le dimensioni, in byte, del requisito di dimensione lookahead per questa coda. Una scheda di rete che supporta lookahead nelle code di macchine virtuali suddivide un pacchetto ricevuto in corrispondenza di un offset uguale o maggiore della dimensione lookahead richiesta e usa DMA per trasferire i dati lookahead e i dati post-lookahead in segmenti di memoria condivisa separati. Se il LookaheadSize è zero, il driver miniport non deve dividere il pacchetto.
LookaheadSize è valido quando NDIS imposta il flag di NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED nel membro Flag. Ovvero, il driver miniport deve dividere il pacchetto con la dimensione lookahead specificata se è impostato anche il flag. Se il flag è deselezionato, un valore diverso da zero per LookaheadSize non è valido.
Nota
A partire da NDIS 6.30, la suddivisione dei dati dei pacchetti in buffer lookahead separati non è più supportata. Il valore di questo membro deve essere zero.
VmName
Valore NDIS_VM_NAME che contiene la descrizione della macchina virtuale letta dagli utenti.
QueueName
Valore NDIS_QUEUE_NAME che contiene la descrizione della coda letta dagli utenti.
PortId
Valore ULONG che contiene l'identificatore univoco di una porta nel commutatore estendibile Hyper-V a cui è collegata la coda di macchine virtuali.
InterruptCoalescingDomainId
Questo membro è riservato per NDIS.
QosSqId
Associa una coda di macchine virtuali (VMQ) a una coda dell'utilità di pianificazione (SQ). Impostare questo campo su zero per nessuna associazione SQ. Per altre informazioni su NDIS_QOS_SQ_ID, vedere OID_QOS_OFFLOAD_CREATE_SQ.
Il supporto QoS (Hardware Quality of Service) per VMQ legacy non è obbligatorio. Il driver miniport può restituire NDIS_STATUS_NOT_SUPPORTED se QosSqId è diverso da zero.
Osservazioni
La struttura NDIS_RECEIVE_QUEUE_PARAMETERS viene usata nell'OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE e nell'OID OID_RECEIVE_FILTER_QUEUE_PARAMETERS.
In NDIS 6.30 la struttura NDIS_RECEIVE_QUEUE_PARAMETERS viene usata anche nelle indicazioni di stato NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Supportato in NDIS 6.20 e versioni successive. |
server minimo supportato | Windows Server 2022 |
intestazione | ntddndis.h (include Ndis.h) |
Vedere anche
NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS
NdisMIndicateReceiveNetBufferLists