Metodo IPinCount::P inCount (portcls.h)
Il metodo PinCount
esegue una query sul driver miniport per il numero di pin.
Sintassi
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
);
Parametri
[in] PinId
Specifica l'ID pin. Se un filtro contiene n pin factory, gli ID pin validi sono compresi tra 0 e n-1.
[in, out] FilterNecessary
Specifica il numero minimo di pin di cui deve creare un'istanza prima che il filtro possa eseguire operazioni di I/O.
[in, out] FilterCurrent
Specifica il numero corrente di istanze di pin. Questo numero conta i pin di cui è già stata creata un'istanza nella factory dei pin nel filtro.
[in, out] FilterPossible
Specifica il numero massimo di pin di cui la factory di pin può creare un'istanza nel filtro. Impostare su KSINSTANCE_INDETERMINATE se non è presente alcun valore massimo.
[in, out] GlobalCurrent
Specifica il numero corrente di pin di cui è stata creata un'istanza nella factory del pin nel driver.
[in, out] GlobalPossible
Specifica il numero massimo di pin di cui la factory può creare un'istanza nel driver. Impostare su KSINSTANCE_INDETERMINATE se non è presente alcun valore massimo.
Valore restituito
Nessuno
Osservazioni
La chiamata PinCount
ha due scopi:
- Per comunicare al driver miniport i conteggi dei pin correnti.
- Per dare al driver miniport l'opportunità di modificare i conteggi dei pin correnti.
FilterCurrent e FilterPossible specificare i valori per filtro per la factory di pin specificata da PinId.
GlobalCurrent e GlobalPossible specificare i valori totali per la factory di pin in tutte le istanze del filtro.
I driver Miniport in genere non devono modificare il parametro FilterNecessary, ma è incluso per motivi di completezza.
Durante la chiamata IPort::Init, il driver della porta chiama il IMiniport::GetDescription metodo per ottenere un puntatore al descrittore di filtro, che include la matrice di descrittore pin del driver miniport (vedere PCPIN_DESCRIPTOR). Successivamente, il driver della porta accede ai descrittori pin per rispondere alle query per le proprietà dei pin.
Se il driver miniport supporta l'interfaccia IPinCount, il driver della porta chiama PinCount
per fornire al driver miniport l'opportunità di aggiornare i conteggi dei pin prima di rispondere a una richiesta di proprietà pin. Se il driver miniport non supporta IPinCount, il driver della porta usa semplicemente i limiti del numero di pin statici nella matrice del descrittore pin.
Il driver della porta chiama il metodo PinCount
quando riceve una delle richieste di proprietà KS seguenti:
KSPROPERTY_PIN_GLOBALCINSTANCES
KSPROPERTY_PIN_NECESSARYINSTANCES
PortCls chiama anche il metodo PinCount
ogni volta che viene creato un nuovo flusso.
I driver Miniport non devono causare in modo esplicito la creazione o l'eliminazione definitiva dei flussi dall'interno del metodo PinCount
. I driver miniport non sono altrimenti limitati in ciò che possono fare durante questa chiamata.
Il metodo PinCount
viene chiamato in PASSIVE_LEVEL IRQL. Il codice per questo metodo deve risiedere nella memoria di paging.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | portcls.h (include Portcls.h) |
IRQL | PASSIVE_LEVEL |
Vedere anche
KSPROPERTY_PIN_GLOBALCINSTANCES