Compartir a través de


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.
FilterNecessary, FilterCurrent, FilterPossible, GlobalCurrenty GlobalPossible son todos los parámetros IN+OUT que apuntan a valores en la descripción del filtro del controlador de miniport. Durante la llamada PinCount, el controlador de miniporte puede examinar estos valores y tiene la opción de editar los valores para indicar con más precisión cuántos patillas adicionales se pueden crear a partir de los recursos restantes.

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_CINSTANCES

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

IMiniport::GetDescription

IPinCount

IPort::Init

KSPROPERTY_PIN_CINSTANCES

KSPROPERTY_PIN_GLOBALCINSTANCES

KSPROPERTY_PIN_NECESSARYINSTANCES

PCPIN_DESCRIPTOR