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
다음과 같은 두 가지 목적이 있습니다.
- 미니포트 드라이버가 현재 핀 수를 알 수 있도록 합니다.
- 미니포트 드라이버에 현재 핀 수를 변경할 수 있는 기회를 제공합니다.
FilterCurrent 및 FilterPossible 은 PinId로 지정된 핀 팩터리의 필터별 값을 지정합니다.
GlobalCurrent 및 GlobalPossible 은 필터의 모든 인스턴스에 대해 핀 팩터리의 총 값을 지정합니다.
미니포트 드라이버는 일반적으로 FilterNecessary 매개 변수를 변경할 필요가 없지만 완전성을 위해 포함됩니다.
IPort::Init 호출 중에 포트 드라이버는 미니포트 드라이버의 IMiniport::GetDescription 메서드를 호출하여 미니포트 드라이버의 핀 설명자 배열을 포함하는 필터 설명자에 대한 포인터를 가져옵니다(PCPIN_DESCRIPTOR 참조). 그 후 포트 드라이버는 핀 설명자에 액세스하여 핀 속성에 대한 쿼리에 응답합니다.
미니포트 드라이버가 IPinCount 인터페이스를 지원하는 경우 포트 드라이버는 를 호출 PinCount
하여 미니포트 드라이버에 핀 속성 요청에 회신하기 전에 핀 수를 업데이트할 수 있는 기회를 제공합니다. 미니포트 드라이버가 IPinCount를 지원하지 않는 경우 포트 드라이버는 핀 설명자 배열에서 고정 핀 개수 제한을 사용합니다.
포트 드라이버는 다음 KS 속성 요청 중 하나를 수신할 때 메서드를 호출 PinCount
합니다.
KSPROPERTY_PIN_GLOBALCINSTANCES
KSPROPERTY_PIN_NECESSARYINSTANCES
또한 PortCls는 새 스트림을 PinCount
만들 때마다 메서드를 호출합니다.
미니포트 드라이버는 메서드 내에서 PinCount
스트림을 만들거나 제거하도록 명시적으로 해서는 안 됩니다. 미니포트 드라이버는 이 호출 중에 수행할 수 있는 작업에서 제한되지 않습니다.
메서드는 PinCount
IRQL PASSIVE_LEVEL 호출됩니다. 이 메서드의 코드는 페이징된 메모리에 있어야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | portcls.h(Portcls.h 포함) |
IRQL | PASSIVE_LEVEL |
추가 정보
KSPROPERTY_PIN_GLOBALCINSTANCES