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 인터페이스를 지원하는 경우 포트 드라이버는 pin 속성 요청에 회신하기 전에 미니포트 드라이버에 핀 수를 업데이트할 수 있는 기회를 제공하기 위해 호출 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
피드백
다음에 대한 사용자 의견 제출 및 보기