Método IPinCount::P inCount (portcls.h)
El método PinCount
consulta el controlador de miniport para su recuento de patillas.
Sintaxis
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 el identificador de patilla. Si un filtro contiene n generadores de patillas, los identificadores de patilla válidos van de 0 a n-1.
[in, out] FilterNecessary
Especifica el número mínimo de patillas que el generador de patillas debe crear instancias antes de que el filtro pueda realizar operaciones de E/S.
[in, out] FilterCurrent
Especifica el número actual de instancias de anclaje. Este número cuenta los patillas que el generador de patillas ya ha creado una instancia en el filtro.
[in, out] FilterPossible
Especifica el número máximo de patillas que el generador de patillas puede crear instancias en el filtro. Establézcalo en KSINSTANCE_INDETERMINATE si no hay ningún máximo.
[in, out] GlobalCurrent
Especifica el número actual de patillas de las que se ha creado una instancia del generador de patillas en el controlador.
[in, out] GlobalPossible
Especifica el número máximo de patillas que el generador de patillas puede crear instancias en el controlador. Establézcalo en KSINSTANCE_INDETERMINATE si no hay ningún máximo.
Valor devuelto
Ninguno
Observaciones
La llamada PinCount
tiene dos propósitos:
- Para que el controlador de miniporte conozca los recuentos de patillas actuales.
- Para dar al controlador de miniportar una oportunidad para modificar los recuentos de patillas actuales.
FilterCurrent y FilterPossible especifique los valores por filtro para el generador de patillas especificado por PinId.
GlobalCurrent y GlobalPossible especificar los valores totales del generador de patillas en todas las instancias del filtro.
Los controladores de miniportar normalmente no necesitan cambiar el parámetro filterNecessary de, pero se incluye por motivos de integridad.
Durante la llamada IPort::Init, el controlador de puerto llama al método IMiniport::GetDescription para obtener un puntero al descriptor de filtro, que incluye la matriz de descriptores de pin del controlador de miniport (vea PCPIN_DESCRIPTOR). A partir de entonces, el controlador de puerto accede a los descriptores de anclaje para responder a las consultas de las propiedades del pin.
Si el controlador de miniporte admite la interfaz de IPinCount, el controlador de puerto llama a PinCount
para dar al controlador de miniporte la oportunidad de actualizar los recuentos de patillas antes de responder a una solicitud de propiedad de anclaje. Si el controlador de miniporte no admite IPinCount, el controlador de puerto simplemente usa los límites de recuento de patillas estáticos en la matriz del descriptor de anclaje.
El controlador de puerto llama al método PinCount
cuando recibe una de las siguientes solicitudes de propiedad KS:
KSPROPERTY_PIN_GLOBALCINSTANCES
KSPROPERTY_PIN_NECESSARYINSTANCES
PortCls también llama al método PinCount
cada vez que se crea una nueva secuencia.
Los controladores de miniport no deben hacer explícitamente que las secuencias se creen o destruyan desde el método PinCount
. Los controladores de miniportar no están restringidos en lo que pueden hacer durante esta llamada.
Se llama al método PinCount
en irQL PASSIVE_LEVEL. El código de este método debe residir en la memoria paginada.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
encabezado de | portcls.h (incluya Portcls.h) |
irQL | PASSIVE_LEVEL |
Consulte también
KSPROPERTY_PIN_GLOBALCINSTANCES