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 포인터를. 속성 요청의 대상이 핀 인스턴스인 경우 이 멤버는 IMiniport Xxx::NewStream 메서드가 이전에 포트 드라이버에 출력하는 스트림 개체 포인터를 포함합니다(예: IMiniportWaveCyclic::NewStream 메서드의 Stream 매개 변수). 그렇지 않으면(속성 요청의 대상이 필터 인스턴스인 경우) 이 멤버는 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
속성 인스턴스 버퍼에 대한 포인터
ValueSize
속성-값 버퍼의 크기(바이트)를 지정합니다.
Value
속성-값 버퍼에 대한 포인터
Irp
클라이언트의 원래 속성 요청을 포함하는 IRP 대한 포인터
발언
포트 드라이버가 미니포트 드라이버의 속성 처리기 루틴에 전달하는 구조입니다. PCPROPERTY_ITEM 구조체에는 PCPROPERTY_REQUEST 포인터를 유일한 호출 매개 변수로 사용하는 속성 처리기에 대한 함수 포인터가 포함되어 있습니다. 포트 드라이버는 PCPROPERTY_REQUEST 구조를 할당하고, 원래 속성 요청(Irp 멤버가 가리키는)에서 관련 정보를 추출하고, 처리기를 호출하기 전에 이 구조에 정보를 로드합니다.
WDM 오디오에서 속성 요청의 대상은 필터 인스턴스 또는 핀 인스턴스일 수 있습니다. 대상에는 노드 ID도 포함될 수 있습니다.
클라이언트의 원래 속성 요청에서 속성 인스턴스 데이터는 항상 KSPROPERTY 또는 KSNODEPROPERTY 구조로 시작하지만 추가 정보를 포함할 수 있습니다. 포트 드라이버는 PCPROPERTY_REQUEST 구조체의 인스턴스 멤버가 있는 경우 이 추가 정보를 가리키도록 조정합니다. 자세한 내용은 오디오 속성 처리기 참조하세요.
MajorTarget 및 MinorTarget 멤버는 각각 주 미니포트 개체 및 연결된 스트림 개체에 대한 IUnknown 포인터를. 속성 처리기는 이러한 개체의 미니포트 및 스트림 인터페이스를 쿼리할 수 있습니다. 속성 요청의 대상이 필터 인스턴스인 경우 MajorTarget 해당 필터 인스턴스의 미니포트 개체를 가리키고 MinorTarget NULL . 대상이 핀 인스턴스인 경우 MinorTarget 해당 핀의 스트림 개체를 가리키고 MajorTarget 핀이 연결된 필터의 미니포트 개체를 가리킵니다.
예를 들어 속성 요청의 대상이 WaveCyclic 필터의 핀 인스턴스인 경우:
- 처리기는 MajorTarget 개체의 IUnknown 인터페이스에서 QueryInterface 호출하여 개체의 IMiniportWaveCyclic 인터페이스에 대한 참조를 가져올 수 있습니다.
- 처리기는 MinorTarget 개체의 IUnknown 인터페이스에서 QueryInterface 호출하여 개체의 IMiniportWaveCyclicStream 인터페이스에 대한 참조를 가져올 수 있습니다.
요구 사항
요구 | 값 |
---|---|
헤더 | portcls.h(Portcls.h 포함) |