Freigeben über


NDIS_PD_ALLOCATE_COUNTER Rückruffunktion (ndis.h)

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

  • Empfangswarteschlangenzähler werden für die Nachverfolgung von Empfangswarteschlangenaktivitäten verwendet.
  • Übertragungswarteschlangenzähler werden zum Nachverfolgen von Übertragungswarteschlangenaktivitäten verwendet.
  • Filterzähler werden für die Nachverfolgung von Filter-Übereinstimmungsaktivitäten verwendet.
Note You must declare the function by using the NDIS_PD_ALLOCATE_COUNTER type. 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 Gegenzuordnung erfolgreich ist, gibt der Miniporttreiber einen Handle an den neu zugewiesenen Zähler in dieser Variablen zurück.

Rückgabewert

NdisPDAllocateCounter kann einen der folgenden Statuswerte zurückgeben:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Miniporttreiber hat den Zähler erfolgreich zugewiesen und einen Handle im CounterHandle--Parameter zurückgegeben.
STATUS_INSUFFICIENT_RESOURCES
Fehler bei der Zuordnung aufgrund unzureichender Ressourcen.

Bemerkungen

Dasselbe Zählerobjekt kann mehreren Warteschlangen- oder Filterobjekten desselben Typs wie dem Zähler zugeordnet werden. Wenn z. B. 5 Empfangswarteschlangen (RQ1 bis RQ5) und 2 Empfangsindikatoren (RC1 und RC2) vorhanden sind, könnte der Empfangsindikator RC1 den Empfangswarteschlangen RQ1, RQ2, RQ3 und Empfangszähler RC2 zugeordnet werden, die den Empfangswarteschlangen RQ4 und RQ5 zugeordnet werden können.

beispiele für

Um eine NdisPDAllocateCounter--Funktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der Funktion identifiziert, die Sie definieren. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Funktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine NdisPDAllocateCounter--Funktion zu definieren, die den Namen "MyPDAllocateCounter" hat, verwenden Sie den NDIS_PD_ALLOCATE_COUNTER Typ, 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 wird in der Headerdatei Ntddndis.h definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den Funktionstyp NDIS_PD_ALLOCATE_COUNTER in der Headerdatei angewendet werden, verwendet 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_annotationsfinden Sie unter Annotating Function Behavior.

Anforderungen

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

Siehe auch

NDIS_PD_COUNTER_PARAMETERS

NdisPDFreeCounter