PCPROPERTY_REQUEST 구조체(portcls.h)
PCPROPERTY_REQUEST 구조체는 속성 요청을 지정합니다.
구문
typedef struct _PCPROPERTY_REQUEST {
PUNKNOWN MajorTarget;
PUNKNOWN MinorTarget;
ULONG Node;
const PCPROPERTY_ITEM *PropertyItem;
ULONG Verb;
ULONG InstanceSize;
PVOID Instance;
ULONG ValueSize;
PVOID Value;
PIRP Irp;
} PCPROPERTY_REQUEST, *PPCPROPERTY_REQUEST;
멤버
MajorTarget
기본 미니포트 개체에 대한 IUnknown 포인터입니다. 이 멤버에는 어댑터 드라이버가 이전에 IPort::Init 메서드에 전달한 UnknownMiniport 매개 변수 값이 포함되어 있습니다.
MinorTarget
MajorTarget 미니포트 개체와 연결된 스트림 개체에 대한 IUnknown 포인터입니다. 속성 요청의 대상이 핀 instance 경우 이 멤버에는 이전에 IMiniport Xxx::NewStream 메서드가 포트 드라이버에 출력한 스트림 개체 포인터가 포함됩니다(예: IMiniportWaveCyclic::NewStream 메서드의 Stream 매개 변수). 그렇지 않으면(속성 요청의 대상이 필터 instance 경우) 이 멤버는 NULL입니다.
Node
노드 ID를 지정합니다. 이 멤버는 요청에 대한 대상 노드를 식별합니다. 대상이 노드가 아닌 경우 이 멤버는 ULONG(-1)로 설정됩니다.
PropertyItem
PCPROPERTY_ITEM 형식의 구조인 속성 항목에 대한 포인터입니다.
Verb
속성 요청의 유형을 지정합니다. 동사는 헤더 파일 ks.h에서 다음 플래그 비트 중 하나 이상의 비트 OR로 설정됩니다.
- KSPROPERTY_TYPE_GET
- KSPROPERTY_TYPE_SET
- KSPROPERTY_TYPE_SETSUPPORT
- KSPROPERTY_TYPE_BASICSUPPORT
- KSPROPERTY_TYPE_RELATIONS
- KSPROPERTY_TYPE_SERIALIZESET
- KSPROPERTY_TYPE_UNSERIALIZESET
- KSPROPERTY_TYPE_SERIALIZERAW
- KSPROPERTY_TYPE_UNSERIALIZERAW
- KSPROPERTY_TYPE_SERIALIZESIZE
- KSPROPERTY_TYPE_DEFAULTVALUES
- KSPROPERTY_TYPE_TOPOLOGY
InstanceSize
속성 instance 버퍼의 크기(바이트)를 지정합니다.
Instance
속성 instance 버퍼에 대한 포인터
ValueSize
속성-값 버퍼의 크기(바이트)를 지정합니다.
Value
속성-값 버퍼에 대한 포인터
Irp
클라이언트의 원래 속성 요청을 포함하는 IRP 에 대한 포인터
설명
포트 드라이버가 미니포트 드라이버의 속성 처리기 루틴에 전달하는 구조입니다. PCPROPERTY_ITEM 구조체에는 PCPROPERTY_REQUEST 포인터를 유일한 호출 매개 변수로 사용하는 속성 처리기에 대한 함수 포인터가 포함되어 있습니다. 포트 드라이버는 PCPROPERTY_REQUEST 구조를 할당하고, Irp 멤버가 가리키는 원래 속성 요청에서 관련 정보를 추출하고, 처리기를 호출하기 전에 이 구조체에 정보를 로드합니다.
WDM 오디오에서 속성 요청의 대상은 필터 instance 또는 핀 instance 수 있습니다. 대상에는 노드 ID도 포함될 수 있습니다.
클라이언트의 원래 속성 요청에서 속성 instance 데이터는 항상 KSPROPERTY 또는 KSNODEPROPERTY 구조로 시작하지만 추가 정보를 포함할 수 있습니다. 포트 드라이버는 PCPROPERTY_REQUEST 구조체의 인스턴스 멤버가 있는 경우 이 추가 정보를 가리키도록 조정합니다. 자세한 내용은 오디오 속성 처리기를 참조하세요.
MajorTarget 및 MinorTarget 멤버는 각각 기본 미니포트 개체 및 연결된 스트림 개체에 대한 IUnknown 포인터입니다. 속성 처리기는 미니포트 및 스트림 인터페이스에 대해 이러한 개체를 쿼리할 수 있습니다. 속성 요청의 대상이 필터 instance 경우 MajorTarget은 해당 필터 instance 대한 미니포트 개체를 가리키고 MinorTarget은 NULL입니다. 대상이 핀 instance 경우 MinorTarget은 해당 핀의 스트림 개체를 가리키고 MajorTarget은 핀이 연결된 필터의 미니포트 개체를 가리킵니다.
예를 들어 속성 요청의 대상이 WaveCyclic 필터의 핀 instance 경우:
- 처리기는 MajorTarget 개체의 IUnknown 인터페이스에서 QueryInterface를 호출하여 개체의 IMiniportWaveCyclic 인터페이스에 대한 참조를 가져올 수 있습니다.
- 처리기는 MinorTarget 개체의 IUnknown 인터페이스에서 QueryInterface를 호출하여 개체의 IMiniportWaveCyclicStream 인터페이스에 대한 참조를 가져올 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | portcls.h(Portcls.h 포함) |