다음을 통해 공유


IPinCount::P InCount 메서드(portcls.h)

메서드는 PinCount 미니포트 드라이버의 핀 수를 쿼리합니다.

구문

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
);

매개 변수

[in] PinId

핀 ID를 지정합니다. 필터에 n 핀 팩터리를 포함하는 경우 유효한 핀 ID 범위는 0에서 n-1까지입니다.

[in, out] FilterNecessary

필터가 I/O 작업을 수행하기 전에 핀 팩터리가 인스턴스화해야 하는 최소 핀 수를 지정합니다.

[in, out] FilterCurrent

현재 핀 인스턴스 수를 지정합니다. 이 숫자는 필터에서 핀 팩터리가 이미 인스턴스화한 핀 수를 계산합니다.

[in, out] FilterPossible

필터에서 핀 팩터리가 인스턴스화할 수 있는 최대 핀 수를 지정합니다. 최대값이 없으면 KSINSTANCE_INDETERMINATE 로 설정합니다.

[in, out] GlobalCurrent

드라이버에서 핀 팩터리가 인스턴스화한 현재 핀 수를 지정합니다.

[in, out] GlobalPossible

핀 팩터리가 드라이버에서 인스턴스화할 수 있는 최대 핀 수를 지정합니다. 최대값이 없으면 KSINSTANCE_INDETERMINATE 로 설정합니다.

반환 값

없음

설명

호출에는 PinCount 다음과 같은 두 가지 목적이 있습니다.

  • 미니포트 드라이버가 현재 핀 수를 알 수 있도록 합니다.
  • 미니포트 드라이버에 현재 핀 수를 변경할 수 있는 기회를 제공합니다.
FilterNecessary, FilterCurrent, FilterPossible, GlobalCurrentGlobalPossible 은 미니포트 드라이버의 필터 설명에 있는 값을 가리키는 모든 IN+OUT 매개 변수입니다. PinCount 호출 중에 미니포트 드라이버는 이러한 값을 검사할 수 있으며 나머지 리소스에서 만들 수 있는 추가 핀 수를 보다 정확하게 나타내기 위해 값을 편집할 수 있습니다.

FilterCurrentFilterPossiblePinId로 지정된 핀 팩터리의 필터별 값을 지정합니다.

GlobalCurrentGlobalPossible 은 필터의 모든 인스턴스에 대해 핀 팩터리의 총 값을 지정합니다.

미니포트 드라이버는 일반적으로 FilterNecessary 매개 변수를 변경할 필요가 없지만 완전성을 위해 포함됩니다.

IPort::Init 호출 중에 포트 드라이버는 미니포트 드라이버의 IMiniport::GetDescription 메서드를 호출하여 미니포트 드라이버의 핀 설명자 배열을 포함하는 필터 설명자에 대한 포인터를 가져옵니다(PCPIN_DESCRIPTOR 참조). 그 후 포트 드라이버는 핀 설명자에 액세스하여 핀 속성에 대한 쿼리에 응답합니다.

미니포트 드라이버가 IPinCount 인터페이스를 지원하는 경우 포트 드라이버는 를 호출 PinCount 하여 미니포트 드라이버에 핀 속성 요청에 회신하기 전에 핀 수를 업데이트할 수 있는 기회를 제공합니다. 미니포트 드라이버가 IPinCount를 지원하지 않는 경우 포트 드라이버는 핀 설명자 배열에서 고정 핀 개수 제한을 사용합니다.

포트 드라이버는 다음 KS 속성 요청 중 하나를 수신할 때 메서드를 호출 PinCount 합니다.

KSPROPERTY_PIN_CINSTANCES

KSPROPERTY_PIN_GLOBALCINSTANCES

KSPROPERTY_PIN_NECESSARYINSTANCES

또한 PortCls는 새 스트림을 PinCount 만들 때마다 메서드를 호출합니다.

미니포트 드라이버는 메서드 내에서 PinCount 스트림을 만들거나 제거하도록 명시적으로 해서는 안 됩니다. 미니포트 드라이버는 이 호출 중에 수행할 수 있는 작업에서 제한되지 않습니다.

메서드는 PinCount IRQL PASSIVE_LEVEL 호출됩니다. 이 메서드의 코드는 페이징된 메모리에 있어야 합니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 portcls.h(Portcls.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

IMiniport::GetDescription

IPinCount

IPort::Init

KSPROPERTY_PIN_CINSTANCES

KSPROPERTY_PIN_GLOBALCINSTANCES

KSPROPERTY_PIN_NECESSARYINSTANCES

PCPIN_DESCRIPTOR