다음을 통해 공유


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 구조에 대한 포인터인 단일 호출 매개 변수를 전달합니다. 이 구조체는 호출자가 할당하고 호출자는 다음 조건 중 하나에서 해제합니다.

  1. 처리기 루틴이 STATUS_PENDING 이외의 상태 코드를 반환하면 호출자는 구조를 해제합니다. 이 경우 미니포트 드라이버는 처리기 루틴이 반환된 후 구조체에 액세스하려고 시도해서는 안 됩니다.
  2. 처리기 루틴은 STATUS_PENDING 반환할 수도 있습니다. 이 경우 미니포트 드라이버는 나중에 PcCompletePendingPropertyRequest를 호출하여 보류 중인 속성 요청을 완료해야 합니다. PcCompletePendingPropertyRequest 함수는 구조를 해제합니다. PcCompletePendingPropertyRequest를 호출한 후 미니포트 드라이버는 구조체에 액세스하려고 시도해서는 안 됩니다.
미니포트 드라이버가 해제된 후 구조체에 액세스하려고 하면 버그 검사 발생하거나 다른 드라이버의 메모리가 손상될 수 있습니다.

속성 집합의 serialization 및 원시 serialization에 대한 자세한 내용은 KS 속성을 참조하세요.

요구 사항

요구 사항
헤더 portcls.h(Portcls.h 포함)

추가 정보

PCPROPERTY_REQUEST

PcCompletePendingPropertyRequest