Freigeben über


NDIS_PD_QUEUE_PARAMETERS Struktur (ndis.h)

Diese Struktur wird verwendet, um Parameter für eine Übertragungs- oder Empfangswarteschlange beim Aufrufen einer der Warteschlangenroutinen zu halten.

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;

Angehörige

Header

Die NDIS_OBJECT_HEADER Struktur für die NDIS_PD_CONFIG Struktur. Legen Sie die Elemente 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 Mitglied 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 und ist immer gleich einer Zahl 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 für den Anbieter zur Leistungsoptimierung. Die Plattform wird in erster Linie die Warteschlange auf Prozessoren verarbeiten, die durch diese Maske angegeben sind. Der Anbieter muss diesen Wert auf den Prozessorkern festlegen, der von der von OID_GEN_RECEIVE_SCALE_PARAMETERS konfigurierten Dereferenzierungstabelle abgeleitet ist.

TrafficClassId

MaximumPartialBufferCount

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

Bei Empfangswarteschlangen ist dies die maximale Anzahl teilweiser 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 MaximumRxPartialBufferCount-Wert in der NDIS_PD_CAPABILITIES-Struktur sein.

Hinweis Der Client veröffentlicht niemals PD_BUFFER Strukturen mit der teilweisen Kennzeichnung in der Empfangswarteschlange. Der Kunde ist immer verpflichtet, PD_BUFFER Strukturen mit mindestens MTU-Größe zu posten, beginnend mit der Datenanfangsposition. 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-Mitglied in der NDIS_PD_CAPABILITIES-Struktur fest.
 

CounterHandle

Dies ist ein Handle für den Übertragungswarteschlangenzähler für Übertragungswarteschlangen und einen Empfangswarteschlangenzähler für Empfangswarteschlangen. Während der Warteschlangenerstellung kann ein Client optional einen Zählerhandle bereitstellen. In diesem Fall und je nach Warteschlangentyp muss der Anbieter die Zählerwerte aktualisieren, wenn die Aktivität in der Warteschlange auftritt. Der Client ist dafür verantwortlich, den Zählerhandle nur zu schließen, nachdem die Warteschlange geschlossen wurde.

Für Warteschlangen, die nicht direkt vom Client erstellt werden, z. B. RSS-Empfangswarteschlangen, die mithilfe der NdisPDOnRssReceiveQueuesRoutine abgerufen werden, muss der Anbieter immer über ein zugeordnetes Zählerhandle mit der Warteschlange verfügen. Das heißt, für einen bestimmten Satz von RSS-Empfangswarteschlangen muss der Anbieter über einen dedizierten Empfangswarteschlangenzähler für jede Empfangswarteschlange verfügen.

Bemerkungen

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10
mindestens unterstützte Server- Windows Server 2016
Header- ndis.h

Siehe auch

NDIS_PD_QUEUE_TYPE

NdisPDAllocateQueue