PCPROPERTY_ITEM 구조체(portcls.h)
PCPROPERTY_ITEM 구조는 특정 필터, 핀 또는 노드에서 지원하는 속성을 설명합니다.
구문
typedef struct {
const GUID *Set;
ULONG Id;
ULONG Flags;
PCPFNPROPERTY_HANDLER Handler;
} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
멤버
Set
속성 집합을 지정합니다. 이 멤버는 속성 집합을 고유하게 식별하는 GUID에 대한 포인터입니다. 오디오 드라이버 속성 집합의 속성 집합 GUID 목록을 참조하세요.
Id
속성 ID를 지정합니다. 이 멤버는 속성 집합 내의 속성 항목을 식별합니다. 속성 집합에 N 항목이 포함된 경우 유효한 속성 ID는 0~N-1 범위의 정수입니다.
Flags
드라이버에서 지원하는 속성 요청의 유형을 지정합니다. 이 멤버를 다음 표에 표시되는 플래그 비트의 일부 또는 전부의 비트 OR로 설정합니다.
플래그 비트 | 속성 요청 유형 |
---|---|
PCPROPERTY_ITEM_FLAG_GET | 현재 속성 데이터 설정을 가져오기 위한 요청입니다. |
PCPROPERTY_ITEM_FLAG_SET | 현재 속성 데이터 설정을 요청합니다. |
PCPROPERTY_ITEM_FLAG_DEFAULTVALUES | 속성 데이터에 대한 드라이버의 기본값에 대한 요청입니다. |
PCPROPERTY_ITEM_FLAG_BASICSUPPORT | 기본 지원 요청 - 드라이버가 이 속성에 대해 처리하는 요청 형식을 지정하고 속성 데이터의 유효한 데이터 형식과 유효한 범위를 지정합니다. |
PCPROPERTY_ITEM_FLAG_SERIALIZESIZE | 이 속성이 KSPROPERTY_TYPE_SERIALIZESET 요청의 일부로 serialize될 때 속성 데이터의 크기에 대한 요청입니다. |
PCPROPERTY_ITEM_FLAG_SERIALIZERAW | 드라이버 종속 방식으로 이 속성을 직렬화하도록 요청합니다. 이 작업은 PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW 역입니다. |
PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | 드라이버 종속 방식으로 이 속성을 비직렬화하도록 요청합니다. 이 작업은 PCPROPERTY_ITEM_FLAG_SERIALIZERAW 역입니다. |
PCPROPERTY_ITEM_FLAG_SERIALIZE | PCPROPERTY_ITEM_FLAG_SERIALIZERAW | PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | PCPROPERTY_ITEM_FLAG_SERIALIZESIZE |
Handler
속성 처리기 루틴에 대한 포인터입니다. 이 멤버는 다음과 같이 정의된 PCPFNPROPERTY_HANDLER 형식의 함수 포인터입니다.
typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)
(
IN PPCPROPERTY_REQUEST PropertyRequest
);
다음 설명 섹션을 참조하세요.
설명
PCPROPERTY_ITEM 구조체는 자동화 테이블의 특정 속성 항목을 지정합니다. PCAUTOMATION_TABLE 구조체는 PCPROPERTY_ITEM 구조체의 배열을 가리킵니다.
처리기 루틴을 호출할 때 호출자는 PCPROPERTY_REQUEST 구조에 대한 포인터인 단일 호출 매개 변수를 전달합니다. 이 구조체는 호출자가 할당하고 호출자는 다음 조건 중 하나에서 해제합니다.
- 처리기 루틴이 STATUS_PENDING 이외의 상태 코드를 반환하면 호출자는 구조를 해제합니다. 이 경우 미니포트 드라이버는 처리기 루틴이 반환된 후 구조체에 액세스하려고 시도해서는 안 됩니다.
- 처리기 루틴은 STATUS_PENDING 반환할 수도 있습니다. 이 경우 미니포트 드라이버는 나중에 PcCompletePendingPropertyRequest를 호출하여 보류 중인 속성 요청을 완료해야 합니다. PcCompletePendingPropertyRequest 함수는 구조를 해제합니다. PcCompletePendingPropertyRequest를 호출한 후 미니포트 드라이버는 구조체에 액세스하려고 시도해서는 안 됩니다.
속성 집합의 serialization 및 원시 serialization에 대한 자세한 내용은 KS 속성을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | portcls.h(Portcls.h 포함) |