NDIS_PD_QUEUE_PARAMETERS-Struktur (ndis.h)

Diese Struktur wird zum Halten von Parametern für eine Sende- oder Empfangswarteschlange verwendet, wenn eine der Warteschlangenroutinen aufgerufen wird.

Syntax

typedef struct _NDIS_PD_QUEUE_PARAMETERS {
  NDIS_OBJECT_HEADER     Header;
  ULONG                  Flags;
  NDIS_PD_QUEUE_TYPE     QueueType;
  ULONG                  QueueSize;
  ULONG                  ReceiveDataLength;
  GROUP_AFFINITY         Affinity;
  ULONG                  TrafficClassId;
  ULONG                  MaximumPartialBufferCount;
  NDIS_PD_COUNTER_HANDLE CounterHandle;
} NDIS_PD_QUEUE_PARAMETERS;

Member

Header

Die NDIS_OBJECT_HEADER-Struktur für die NDIS_PD_CONFIG-Struktur . Legen Sie die Member dieser Struktur wie folgt fest:

  • Typ = NDIS_OBJECT_TYPE_DEFAULT
  • Revision = NDIS_PD_QUEUE_PARAMETERS_REVISION_1
  • Größe = NDIS_SIZEOF_PD_QUEUE_PARAMETERS_REVISION_1

Flags

Dieses Element ist reserviert und muss vom Anbieter auf 0 festgelegt werden.

QueueType

Der Typ der Warteschlange. Weitere Informationen finden Sie unter NDIS_PD_QUEUE_TYPE.

QueueSize

Die maximale Menge an PD_BUFFER Strukturen, die diese Warteschlange enthalten kann, ist immer gleich einer Anzahl des Formulars (2^k)-1 (63, 127, 255, 511, 1023 usw.). Dies eignet sich für eine effiziente Zirkelindexarithmetik.

ReceiveDataLength

Die mindeste PD_BUFFER Datenlänge.

Affinity

Die Prozessoraffinität ist ein Hinweis an den Anbieter zur Leistungsoptimierung. Die Plattform verarbeitet in erster Linie die Warteschlange auf Prozessoren, die durch diese Maske angegeben sind. Der Anbieter muss diesen Wert auf den Prozessorkern festlegen, der aus der Indirektionstabelle abgeleitet ist , die von OID_GEN_RECEIVE_SCALE_PARAMETERS

TrafficClassId

MaximumPartialBufferCount

Bei Übertragungswarteschlangen ist dies die maximale Anzahl partieller PD_BUFFER Strukturen, die der Client verketten darf, um ein einzelnes L2-Paket zu bilden. Dieser Wert muss gleich dem Wert MaximumTxPartialBufferCount in der NDIS_PD_CAPABILITIES-Struktur sein.

Bei Empfangswarteschlangen ist dies die maximale Anzahl partieller PD_BUFFER Strukturen, die der Anbieter verketten darf, um ein einzelnes großes L2-Paket mit RSC zu bilden. Dies muss kleiner oder gleich dem Wert MaximumRxPartialBufferCount in der NDIS_PD_CAPABILITIES-Struktur sein.

Hinweis Der Client postet nie PD_BUFFER Strukturen mit dem partiellen Flag an die Empfangswarteschlange. Der Client muss immer PD_BUFFER Strukturen mit mindestens MTU-Größe bereitstellen, beginnend mit der Startposition der Daten. Der Anbieter führt die Verkettung nur im Fall von RSC durch. Einige Anbieter können die RSC-Verkettung möglicherweise nicht unterstützen. Diese Anbieter legen den Wert 1 auf das MaximumRxPartialBufferCount-Element in der NDIS_PD_CAPABILITIES-Struktur fest.
 

CounterHandle

Dies ist ein Handle für den Übertragungswarteschlangenzähler für Sendewarteschlangen und ein Empfangswarteschlangenzähler für Empfangswarteschlangen. Während der Warteschlangenerstellung kann ein Client optional ein Zählerhandle bereitstellen. In diesem Fall und abhängig vom Warteschlangentyp muss der Anbieter die Zählerwerte aktualisieren, wenn die Aktivität in der Warteschlange auftritt. Der Client ist erst nach dem Schließen der Warteschlange für das Schließen des Indikatorhandles verantwortlich.

Für Warteschlangen, die nicht direkt vom Client erstellt werden, z. B. RSS-Empfangswarteschlangen, die mithilfe der NdisPDOnRssReceiveQueues-Routineabgerufen werden, muss der Anbieter immer ein Zählerhandle der Warteschlange zugeordnet sein. Das heißt, für eine bestimmte Gruppe von RSS-Empfangswarteschlangen muss der Anbieter über einen dedizierten Empfangswarteschlangenzähler für jede Empfangswarteschlange verfügen.

Hinweise

Diese Struktur muss an einer 8-Byte-Grenze ausgerichtet werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Windows Server 2016
Kopfzeile ndis.h

Weitere Informationen

NDIS_PD_QUEUE_TYPE

NdisPDAllocateQueue