Metodo IPinCount::P inCount (portcls.h)
Il PinCount
metodo 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 vanno da 0 a 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 del pin. Questo numero conta i pin di cui è già stata creata un'istanza nella factory del pin nel filtro.
[in, out] FilterPossible
Specifica il numero massimo di pin che 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 di pin può creare un'istanza nel driver. Impostare su KSINSTANCE_INDETERMINATE se non è presente alcun valore massimo.
Valore restituito
nessuno
Osservazioni
La PinCount
chiamata ha due scopi:
- Per fare in modo che il driver miniport sappia i conteggi dei pin correnti.
- Per dare al driver miniport un'opportunità per modificare i conteggi dei pin correnti.
FilterCurrent e FilterPossible specificano i valori per filtro per la factory di pin specificata da PinId.
GlobalCurrent e GlobalPossible specificano i valori totali per la factory di pin su 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 metodo IMiniport::GetDescription del driver miniport 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 PinCount
metodo quando riceve una delle richieste di proprietà KS seguenti:
KSPROPERTY_PIN_GLOBALCINSTANCES
KSPROPERTY_PIN_NECESSARYINSTANCES
PortCls chiama anche il PinCount
metodo 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 PinCount
metodo. I driver miniport non sono altrimenti limitati in ciò che possono fare durante questa chiamata.
Il PinCount
metodo viene chiamato in IRQL PASSIVE_LEVEL. Il codice per questo metodo deve risiedere nella memoria di paging.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | portcls.h (include Portcls.h) |
IRQL | PASSIVE_LEVEL |
Vedi anche
KSPROPERTY_PIN_GLOBALCINSTANCES