IPinCount::P inCount-Methode (portcls.h)
Die PinCount
-Methode fragt den Miniporttreiber nach der Pinanzahl ab.
Syntax
void PinCount(
[in] ULONG PinId,
[in, out] PULONG FilterNecessary,
[in, out] PULONG FilterCurrent,
[in, out] PULONG FilterPossible,
[in, out] PULONG GlobalCurrent,
[in, out] PULONG GlobalPossible
);
Parameter
[in] PinId
Gibt die Pin-ID an. Wenn ein Filter n Pin-Fabriken enthält, reichen gültige Pin-IDs von 0 bis n-1.
[in, out] FilterNecessary
Gibt die Mindestanzahl der Pins an, die die Pin-Factory instanziieren soll, bevor der Filter E/A-Vorgänge ausführen kann.
[in, out] FilterCurrent
Gibt die aktuelle Anzahl der Pininstanzen an. Diese Zahl zählt die Pins, die die Pin-Factory bereits auf dem Filter instanziiert hat.
[in, out] FilterPossible
Gibt die maximale Anzahl von Pins an, die die Pinfactory für den Filter instanziieren kann. Wird auf KSINSTANCE_INDETERMINATE festgelegt, wenn kein Maximum vorhanden ist.
[in, out] GlobalCurrent
Gibt die aktuelle Anzahl der Pins an, die die Pin-Factory auf dem Treiber instanziiert hat.
[in, out] GlobalPossible
Gibt die maximale Anzahl von Pins an, die die Pin-Factory auf dem Treiber instanziieren kann. Wird auf KSINSTANCE_INDETERMINATE festgelegt, wenn kein Maximum vorhanden ist.
Rückgabewert
Nichts
Bemerkungen
Der PinCount
Anruf hat zwei Zwecke:
- Um den Miniporttreiber über die aktuelle Pinanzahl zu informieren.
- Um dem Miniporttreiber die Möglichkeit zu geben, die aktuelle Pinanzahl zu ändern.
FilterCurrent und FilterPossible die werte pro Filter für die Pinfactory angeben, die durch PinId-angegeben wird.
GlobalCurrent und GlobalPossible die Gesamtwerte für die Pinfactory für alle Instanzen des Filters angeben.
Miniport-Treiber müssen in der Regel den FilterNecessary Parameter nicht ändern, es ist jedoch im Interesse der Vollständigkeit enthalten.
Während des IPort::Init Aufrufs ruft der Porttreiber die IMiniport::GetDescription Methode des Miniporttreibers auf, um einen Zeiger auf den Filterdeskriptor abzurufen, der das Pindeskriptorarray des Miniporttreibers enthält (siehe PCPIN_DESCRIPTOR). Danach greift der Porttreiber auf die Pindeskriptoren zu, um auf Abfragen für Pineigenschaften zu reagieren.
Wenn der Miniporttreiber die IPinCount Schnittstelle unterstützt, ruft der Porttreiber PinCount
auf, um dem Miniporttreiber die Möglichkeit zu geben, die Pinanzahl zu aktualisieren, bevor er auf eine Pin-Eigenschaftsanforderung antwortet. Wenn der Miniporttreiber IPinCount-nicht unterstützt, verwendet der Porttreiber einfach die statischen Grenzwerte für die Pinanzahl im Pindeskriptorarray.
Der Porttreiber ruft die PinCount
-Methode auf, wenn er eine der folgenden KS-Eigenschaftsanforderungen empfängt:
KSPROPERTY_PIN_GLOBALCINSTANCES
KSPROPERTY_PIN_NECESSARYINSTANCES
PortCls ruft auch die PinCount
-Methode bei jeder Erstellung eines neuen Datenstroms auf.
Miniporttreiber dürfen nicht explizit dazu führen, dass Datenströme innerhalb der PinCount
-Methode erstellt oder zerstört werden. Miniport-Treiber sind nicht anderweitig eingeschränkt, was sie während dieses Anrufs tun können.
Die PinCount
-Methode wird bei IRQL-PASSIVE_LEVEL aufgerufen. Der Code für diese Methode muss sich im ausgelagerten Speicher befinden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | portcls.h (include Portcls.h) |
IRQL- | PASSIVE_LEVEL |
Siehe auch
KSPROPERTY_PIN_GLOBALCINSTANCES