Freigeben über


NDIS_PD_ALLOCATE_COUNTER Rückruffunktion (ndis.h)

Die PacketDirect-Plattform (PD) ruft die NdisPDAllocateCounter-Funktion eines PD-fähigen Miniporttreibers auf, um ein Zählerobjekt zuzuweisen. Es gibt drei Arten von Indikatoren:

  • Empfangswarteschlangenindikatoren werden zum Nachverfolgen der Empfangswarteschlangenaktivität verwendet.
  • Übertragungswarteschlangenindikatoren werden zum Nachverfolgen der Übertragungswarteschlangenaktivität verwendet.
  • Filterindikatoren werden zum Nachverfolgen der Filterkonsensaktivität verwendet.
Hinweis Sie müssen die Funktion mit dem NDIS_PD_ALLOCATE_COUNTER-Typ deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

NDIS_PD_ALLOCATE_COUNTER NdisPdAllocateCounter;

NTSTATUS() NdisPdAllocateCounter(
  [in]  NDIS_PD_PROVIDER_HANDLE ProviderHandle,
  [in]  const NDIS_PD_COUNTER_PARAMETERS *CounterParameters,
  [out] NDIS_PD_COUNTER_HANDLE *CounterHandle
)
{...}

Parameter

[in] ProviderHandle

Ein Anbieterhandle, das das Anbieterobjekt des PD-fähigen Miniporttreibers identifiziert.

[in] CounterParameters

Eine NDIS_PD_COUNTER_PARAMETERS-Struktur , die Informationen wie den Zählertyp angibt.

[out] CounterHandle

Ein Zeiger auf eine vom Treiber zugewiesene Zählerhandlevariable. Wenn die Zählerzuordnung erfolgreich ist, gibt der Miniporttreiber ein Handle an den neu zugewiesenen Zähler in dieser Variablen zurück.

Rückgabewert

NdisPDAllocateCounter kann einen der folgenden status-Werte zurückgeben:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Miniporttreiber hat den Leistungsindikator erfolgreich zugeordnet und ein Handle im CounterHandle-Parameter zurückgegeben.
STATUS_INSUFFICIENT_RESOURCES
Fehler bei der Zuordnung aufgrund unzureichender Ressourcen.

Hinweise

Dasselbe Zählerobjekt kann mehreren Warteschlangen- oder Filterobjekten desselben Typs wie dem Zähler zugeordnet werden. Wenn es beispielsweise 5 Empfangswarteschlangen (RQ1 bis RQ5) und 2 Empfangsindikatoren (RC1 und RC2) gibt, kann der Empfangsindikator RC1 den Empfangswarteschlangen RQ1, RQ2, RQ3 und Dem Empfangsindikator RC2 den Empfangswarteschlangen RQ4 und RQ5 zugeordnet werden.

Beispiele

Um eine NdisPDAllocateCounter-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden Funktion identifiziert. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. Das Deklarieren einer Funktion mithilfe der Funktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine NdisPDAllocateCounter-Funktion mit dem Namen "MyPDAllocateCounter" zu definieren, verwenden Sie den typ NDIS_PD_ALLOCATE_COUNTER , wie in diesem Codebeispiel gezeigt:

NDIS_PD_ALLOCATE_COUNTER MyPDAllocateCounter;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NTSTATUS
 MyPDAllocateCounter(
    NDIS_PD_PROVIDER_HANDLE  ProviderHandle,
    CONST NDIS_PD_COUNTER_PARAMETERS*  CounterParameters,
    NDIS_PD_COUNTER_HANDLE*  CounterHandle
    )
  {...}

Der NDIS_PD_ALLOCATE_COUNTER Funktionstyp ist in der Headerdatei Ntddndis.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzu. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den NDIS_PD_ALLOCATE_COUNTER Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für NDIS-Treiber.

Informationen zu Use_decl_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.

Anforderungen

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

Weitere Informationen

NDIS_PD_COUNTER_PARAMETERS

NdisPDFreeCounter