Método IPinCount::P inCount (portcls.h)
O PinCount
método consulta o driver de miniporto para sua contagem de pinos.
Sintaxe
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
);
Parâmetros
[in] PinId
Especifica a ID do pino. Se um filtro contiver n fábricas de pinos, as IDs de pino válidas variam de 0 a n-1.
[in, out] FilterNecessary
Especifica o número mínimo de pinos que a fábrica de pinos deve instanciar antes que o filtro possa executar operações de E/S.
[in, out] FilterCurrent
Especifica o número atual de instâncias de pino. Esse número conta os pinos que a fábrica de pinos já instanciou no filtro.
[in, out] FilterPossible
Especifica o número máximo de pinos que a fábrica de pinos pode instanciar no filtro. Defina como KSINSTANCE_INDETERMINATE se não houver no máximo.
[in, out] GlobalCurrent
Especifica o número atual de pinos que a fábrica de pinos instanciou no driver.
[in, out] GlobalPossible
Especifica o número máximo de pinos que a fábrica de pinos pode instanciar no driver. Defina como KSINSTANCE_INDETERMINATE se não houver no máximo.
Retornar valor
Nenhum
Comentários
A PinCount
chamada tem duas finalidades:
- Para que o driver de miniporte saiba as contagens de pinos atuais.
- Para dar ao driver de miniporto a oportunidade de alterar as contagens de pinos atuais.
FilterCurrent e FilterPossible especificam os valores por filtro para a fábrica de pinos especificada por PinId.
GlobalCurrent e GlobalPossible especificam os valores totais para a fábrica de pinos em todas as instâncias do filtro.
Os drivers de miniporto normalmente não precisam alterar o parâmetro FilterNecessary , mas estão incluídos para fins de integridade.
Durante a chamada IPort::Init , o driver de porta chama o método IMiniport::GetDescription do driver de miniport para obter um ponteiro para o descritor de filtro, que inclui a matriz pin-descriptor do driver de miniport (consulte PCPIN_DESCRIPTOR). Depois disso, o driver de porta acessa os descritores de pin para responder a consultas para propriedades de pino.
Se o driver de miniporto der suporte à interface IPinCount , o driver de porta chamará PinCount
para dar ao driver de miniporto a oportunidade de atualizar as contagens de pinos antes de responder a uma solicitação de propriedade pin. Se o driver de miniporto não der suporte a IPinCount, o driver de porta simplesmente usará os limites estáticos de contagem de pinos na matriz de descritor de pin.
O driver de porta chama o PinCount
método quando recebe uma das seguintes solicitações de propriedade KS:
KSPROPERTY_PIN_GLOBALCINSTANCES
KSPROPERTY_PIN_NECESSARYINSTANCES
PortCls também chama o PinCount
método sempre que um novo fluxo é criado.
Os drivers de miniporto não devem explicitamente fazer com que os fluxos sejam criados ou destruídos de dentro do PinCount
método . Os drivers de miniporte não são restritos de outra forma no que podem fazer durante essa chamada.
O PinCount
método é chamado em IRQL PASSIVE_LEVEL. O código para esse método deve residir na memória paginada.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | portcls.h (inclua Portcls.h) |
IRQL | PASSIVE_LEVEL |
Confira também
KSPROPERTY_PIN_GLOBALCINSTANCES