다음을 통해 공유


KSPROPERTY_ITEM 구조체(ks.h)

드라이버는 KSPROPERTY_ITEM 구조를 사용하여 속성 집합의 속성을 지원하는 방법을 설명합니다.

통사론

typedef struct {
  ULONG                   PropertyId;
  union {
    PFNKSHANDLER GetPropertyHandler;
    BOOLEAN      GetSupported;
  };
  ULONG                   MinProperty;
  ULONG                   MinData;
  union {
    PFNKSHANDLER SetPropertyHandler;
    BOOLEAN      SetSupported;
  };
  const KSPROPERTY_VALUES *Values;
  ULONG                   RelationsCount;
  const KSPROPERTY        *Relations;
  PFNKSHANDLER            SupportHandler;
  ULONG                   SerializedSize;
} KSPROPERTY_ITEM, *PKSPROPERTY_ITEM;

회원

PropertyId

설명되는 속성의 ID를 지정합니다.

GetPropertyHandler

미니 드라이버 제공 KStrGetPropertyHandler대한 포인터입니다. NULL 경우 속성을 읽을 수 없습니다. 이 멤버는 AVStream 또는 Stream 클래스 인터페이스를 사용하는 드라이버에서만 사용됩니다.

GetSupported

이 속성이 요청 가져오기를 지원하는 경우 TRUE 설정하며, 그렇지 않으면 FALSE . (클래스 드라이버는 SRB_GET_DEVICE_PROPERTY 또는 SRB_GET_STREAM_PROPERTY 요청을 통해 요청을 수행합니다.) 이 멤버는 스트림 클래스에서 실행되는 미니 드라이버에서만 사용됩니다.

MinProperty

속성 식별자를 저장할 최소 버퍼 길이를 지정합니다. 이 크기는 (KSPROPERTY)의이상이어야 합니다.

MinData

이 속성에서 읽거나 이 속성에 쓴 데이터를 저장할 최소 버퍼 길이를 지정합니다.

SetPropertyHandler

미니 드라이버 제공 KStrSetPropertyHandler대한 포인터입니다. NULL 경우 속성을 설정할 수 없습니다. 이 멤버는 AVStream 또는 Stream 클래스 인터페이스를 사용하는 드라이버에서만 사용됩니다.

SetSupported

이 속성이 설정 요청을 지원하는 경우 TRUE 설정하며, 그렇지 않으면 FALSE . 클래스 드라이버는 SRB_SET_DEVICE_PROPERTY 또는 SRB_SET_STREAM_PROPERTY 요청을 통해 요청을 수행합니다.

Values

KSPROPERTY_VALUES형식의 구조체에 대한 포인터입니다. 속성에 허용되는 및/또는 기본값을 지정합니다. 이는 KSPROPERTY_TYPE_BASICSUPPORT 및 KSPROPERTY_TYPE_DEFAULTVALUES 플래그가 설정된 IOCTL_KS_PROPERTY 요청에 대한 응답으로 드라이버가 보고한 값과 동일합니다.

RelationsCount

Relations 멤버가 가리키는 배열의 항목 수를 지정합니다.

Relations

이 구조체와 관련된 속성을 나타내는 KSPROPERTY 구조체의 배열을 가리킵니다. 한 속성을 변경하면 다른 속성의 값에 영향을 줄 수 있는 경우 두 속성이 관련된 것으로 간주됩니다. 각 항목의 Flags 멤버는 사용되지 않습니다.

SupportHandler

원시 serialization 또는 원시 비직렬화에 고유한 형식을 구현하는 경우에만 이 멤버를 제공합니다. 기본 지원 쿼리, 범위 쿼리 및 관계 쿼리는 AVStream에서 자동으로 처리되며 이 KSPROPERTY_ITEM 구조의 다른 멤버에서 관련 값을 반환합니다.

SerializedSize

KSPROPERTY_TYPE_SERIALIZESET 요청에서 serialize할 때 속성의 크기를 지정합니다. 속성을 serialize할 수 없는 경우 0이어야 합니다. 자세한 내용은 KSPROPERTY 참조하세요.

발언

스트림 클래스 미니 드라이버는 KSPROPERTY_ITEM 사용하여 집합 내의 각 속성에 대한 속성 요청을 수행하는 방법을 클라이언트에 설명합니다. 전체 속성 집합에 대한 처리는 KSPROPERTY_ITEM 구조의 배열에 대한 포인터를 포함하는 KSPROPERTY_SET 구조체에 지정됩니다.

스트림 클래스 드라이버는 미니 드라이버 대신 속성 요청을 처리합니다. 스트림 클래스 드라이버가 미니 드라이버에서 추가 정보를 필요로 하는 경우 미니 드라이버의 StrMiniReceiveXXXRequest 루틴 중 하나에 SRB_XXX 요청을 전달합니다. 스트림 클래스 드라이버는 다음 표에 나열된 대로 다양한 요청 유형을 처리합니다.

속성 요청 플래그 값 응답
KSPROPERTY_TYPE_GET GetSupported TRUE 스트림 클래스 드라이버는 SRB_GET_DEVICE_PROPERTY 또는 SRB_GET_STREAM_PROPERTY 요청을 적절한 미니 드라이버 StrMiniReceiveXXXRequest 루틴에 제출합니다.
KSPROPERTY_TYPE_SET SetSupported TRUE 스트림 클래스 드라이버는 SRB_SET_DEVICE_PROPERTY 또는 SRB_SET_STREAM_PROPERTY 요청을 적절한 미니 드라이버 StrMiniReceiveXXXRequest 루틴에 제출합니다.
KSPROPERTY_TYPE_BASICSUPPORT 스트림 클래스 드라이버는 KSPROPERTY_ITEM 사용하여 이 요청을 수행하는 데 필요한 정보를 가져옵니다. 예를 들어 속성 데이터의 데이터 형식 및 허용된 범위를 지정하려면 각각 이 구조의 Values 멤버를 사용합니다.
KSPROPERTY_TYPE_SETSUPPORT 스트림 클래스 드라이버는 드라이버가 해당 KSPROPERTY_SET 구조 내에 설정된 속성에 대한 항목을 제공하는 경우에만 STATUS_SUCCESS 속성 요청 IRP를 완료합니다.
KSPROPERTY_TYPE_DEFAULTVALUES 스트림 클래스 드라이버는 이 구조체의 Values 멤버를 사용하여 속성 데이터의 기본값을 결정합니다.
KSPROPERTY_TYPE_RELATIONS 스트림 클래스 드라이버는 Relations 멤버를 사용하여 이 속성과 관련된 속성을 결정합니다.

클라이언트가 KSPROPERTY_TYPE_DEFAULTVALUES 지정하는 경우 드라이버는 데이터 버퍼를 사용하여 허용되는 범위 및 기본값을 포함하여 해당 값 형식에 대한 설명을 반환합니다. 반환되는 값은 구조체 KSPROPERTY_MEMBERSHEADERFlags 멤버에 KSPROPERTY_MEMBER_FLAG_DEFAULT 표시된 값이라는 점을 제외하면 이 플래그는 KSPROPERTY_TYPE_BASICSUPPORT 유사합니다.

자세한 내용은 KS 속성참조하세요.

요구 사항

요구
헤더 ks.h(Ks.h 포함)

참고 항목

KSPROPERTY

KSPROPERTY_SET

KSPROPERTY_VALUES

SRB_GET_DEVICE_PROPERTY

SRB_GET_STREAM_PROPERTY

SRB_SET_DEVICE_PROPERTY

SRB_SET_STREAM_PROPERTY