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