IPinCount::P inCount-Methode (portcls.h)
Die PinCount
-Methode fragt den Miniporttreiber nach seiner 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 von Pins an, die die Pinfactory instanziieren soll, bevor der Filter E/A-Vorgänge ausführen kann.
[in, out] FilterCurrent
Gibt die aktuelle Anzahl von Pininstanzen an. Diese Zahl zählt die Pins, die die Pin factory bereits für den Filter instanziiert hat.
[in, out] FilterPossible
Gibt die maximale Anzahl von Pins an, die die Pin factory für den Filter instanziieren kann. Legen Sie auf KSINSTANCE_INDETERMINATE fest, wenn kein Maximum vorhanden ist.
[in, out] GlobalCurrent
Gibt die aktuelle Anzahl von 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. Legen Sie auf KSINSTANCE_INDETERMINATE fest, wenn kein Maximum vorhanden ist.
Rückgabewert
Keine
Bemerkungen
Der PinCount
Aufruf 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 geben die Filterwerte für die von PinId angegebene Pin Factory an.
GlobalCurrent und GlobalPossible geben die Gesamtwerte für die Pin Factory für alle Instanzen des Filters an.
Miniporttreiber müssen den FilterNecessary-Parameter in der Regel nicht ändern, aber er ist der Vollständigkeit halber 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 Pin-Deskriptorarray des Miniporttreibers enthält (siehe PCPIN_DESCRIPTOR). Anschließend greift der Porttreiber auf die Pindeskriptoren zu, um auf Abfragen nach Pineigenschaften zu reagieren.
Wenn der Miniporttreiber die IPinCount-Schnittstelle unterstützt, ruft PinCount
der Porttreiber 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 pin-count im Pin-Descriptor-Array.
Der Porttreiber ruft die PinCount
-Methode auf, wenn er eine der folgenden KS-Eigenschaftenanforderungen empfängt:
KSPROPERTY_PIN_GLOBALCINSTANCES
KSPROPERTY_PIN_NECESSARYINSTANCES
PortCls ruft die PinCount
-Methode auch jedes Mal auf, wenn ein neuer Stream erstellt wird.
Miniporttreiber dürfen nicht explizit dazu führen, dass Datenströme innerhalb der PinCount
-Methode erstellt oder zerstört werden. Miniport-Treiber sind sonst nicht in den Möglichkeiten, die sie während dieses Anrufs ausführen können, eingeschränkt.
Die PinCount
Methode wird am IRQL-PASSIVE_LEVEL aufgerufen. Der Code für diese Methode muss sich im ausgelagerten Arbeitsspeicher befinden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | portcls.h (include Portcls.h) |
IRQL | PASSIVE_LEVEL |
Weitere Informationen
KSPROPERTY_PIN_GLOBALCINSTANCES