KSPROPERTY_ITEM Struktur (ks.h)

Treiber verwenden die KSPROPERTY_ITEM-Struktur, um zu beschreiben, wie sie eine Eigenschaft in einem Eigenschaftensatz unterstützen.

Syntax

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;

Member

PropertyId

Gibt die ID der beschriebenen Eigenschaft an.

GetPropertyHandler

Zeiger auf einen vom Minidriver bereitgestellten KStrGetPropertyHandler. Bei NULL kann die Eigenschaft nicht gelesen werden. Dieser Member wird nur von Treibern verwendet, die die AVStream- oder Stream-Klassenschnittstellen verwenden.

GetSupported

Legen Sie auf TRUE fest, wenn diese Eigenschaft Get-Anforderungen unterstützt, FALSE , falls nicht. (Der Klassentreiber erfüllt die Anforderung über die SRB_GET_DEVICE_PROPERTY- oder SRB_GET_STREAM_PROPERTY-Anforderungen.) Dieser Member wird nur von Minidrivern verwendet, die unter der Streamklasse ausgeführt werden.

MinProperty

Gibt die minimale Pufferlänge an, die den Eigenschaftsbezeichner enthalten soll. Dies muss mindestens sizeof(KSPROPERTY) sein.

MinData

Gibt die minimale Pufferlänge an, in der die Daten enthalten sind, die aus dieser Eigenschaft gelesen oder in diese geschrieben werden.

SetPropertyHandler

Zeiger auf einen vom Minidriver bereitgestellten KStrSetPropertyHandler. Bei NULL kann die Eigenschaft nicht festgelegt werden. Dieser Member wird nur von Treibern verwendet, die die AVStream- oder Stream-Klassenschnittstellen verwenden.

SetSupported

Legen Sie auf TRUE fest, wenn diese Eigenschaft Setanforderungen unterstützt, FALSE , falls dies nicht der Fall ist. (Der Klassentreiber erfüllt die Anforderung über die SRB_SET_DEVICE_PROPERTY- oder SRB_SET_STREAM_PROPERTY-Anforderungen.)

Values

Zeiger auf eine Struktur vom Typ KSPROPERTY_VALUES. Gibt die zulässigen und/oder Standardwerte für die Eigenschaft an. Diese Werte entsprechen den Werten, die von einem Treiber als Antwort auf eine IOCTL_KS_PROPERTY Anforderung mit festgelegten KSPROPERTY_TYPE_BASICSUPPORT- und KSPROPERTY_TYPE_DEFAULTVALUES-Flags gemeldet werden.

RelationsCount

Gibt die Anzahl der Einträge in dem Array an, auf das vom Relations-Member verwiesen wird.

Relations

Zeigt auf ein Array von KSPROPERTY-Strukturen , die Eigenschaften darstellen, die mit diesem verknüpft sind. Zwei Eigenschaften gelten als miteinander verbunden, wenn sich das Ändern einer Eigenschaft auf den Wert der anderen Eigenschaft auswirken kann. Das Flags-Element jedes Eintrags wird nicht verwendet.

SupportHandler

Geben Sie dieses Element nur an, wenn Sie Ihr eigenes Format für die Rohserialisierung oder Die unformatierte Unserialisierung implementieren. Grundlegende Supportabfragen, Bereichsabfragen und Beziehungsabfragen werden automatisch von AVStream verarbeitet, die die relevanten Werte von anderen Membern dieser KSPROPERTY_ITEM-Struktur zurückgibt.

SerializedSize

Gibt die Größe der Eigenschaft an, wenn sie in einer KSPROPERTY_TYPE_SERIALIZESET-Anforderung serialisiert wird. Dies sollte null sein, wenn die Eigenschaft nicht serialisiert werden kann. Weitere Informationen finden Sie unter KSPROPERTY .

Hinweise

Stream Klassenminidriver verwenden KSPROPERTY_ITEM, um dem Client zu beschreiben, wie Eigenschaftenanforderungen für jede Eigenschaft innerhalb einer Gruppe erfüllt werden. Die Behandlung für den gesamten Eigenschaftensatz wird in der KSPROPERTY_SET-Struktur angegeben, die Zeiger auf Arrays von KSPROPERTY_ITEM Strukturen enthält.

Der Streamklassentreiber verarbeitet Eigenschaftenanforderungen im Namen des Minidrivers. Wenn der Streamklassentreiber weitere Informationen vom Minidriver benötigt, übergibt er eine SRB_XXX Anforderung an eine der StrMiniReceiveXXXRequest-Routinen des Minidrivers. Der Streamklassentreiber verarbeitet die verschiedenen Anforderungstypen, wie in der folgenden Tabelle aufgeführt.

Eigenschaftsanforderungsflagswert Antwort
KSPROPERTY_TYPE_GET Wenn GetSupportedTRUE ist, sendet der Streamklassentreiber eine SRB_GET_DEVICE_PROPERTY- oder SRB_GET_STREAM_PROPERTY-Anforderung an die entsprechende Minidriver StrMiniReceiveXXXRequest-Routine .
KSPROPERTY_TYPE_SET Wenn SetSupportedTRUE ist, sendet der Streamklassentreiber eine SRB_SET_DEVICE_PROPERTY- oder SRB_SET_STREAM_PROPERTY-Anforderung an die entsprechende Minidriver StrMiniReceiveXXXRequest-Routine .
KSPROPERTY_TYPE_BASICSUPPORT Der Streamklassentreiber verwendet KSPROPERTY_ITEM, um die informationen abzurufen, die für die Erfüllung dieser Anforderung erforderlich sind. Um beispielsweise den Datentyp und die zulässigen Bereiche der Eigenschaftendaten anzugeben, verwenden sie jeweils das Values-Element dieser Struktur.
KSPROPERTY_TYPE_SETSUPPORT Der Streamklassentreiber schließt die Eigenschaftenanforderungs-IRP als STATUS_SUCCESS nur ab, wenn der Treiber einen Eintrag für die in seiner KSPROPERTY_SET Struktur festgelegte Eigenschaft bereitstellt.
KSPROPERTY_TYPE_DEFAULTVALUES Der Streamklassentreiber verwendet das Values-Member dieser Struktur, um die Standardwerte für die Eigenschaftendaten zu bestimmen.
KSPROPERTY_TYPE_RELATIONS Der Streamklassentreiber verwendet den Relations-Member , um zu bestimmen, welche Eigenschaften mit dieser Eigenschaft verknüpft sind.

Wenn der Client KSPROPERTY_TYPE_DEFAULTVALUES angibt, verwendet der Treiber den Datenpuffer, um eine Beschreibung des Werttyps zurückzugeben, einschließlich möglicherweise des zulässigen Bereichs und des Standardwerts. Dieses Flag ähnelt im Ergebnis KSPROPERTY_TYPE_BASICSUPPORT, mit dem Unterschied, dass alle zurückgegebenen Werte diejenigen sind, die im Flags-Element der Struktur KSPROPERTY_MEMBERSHEADER mit KSPROPERTY_MEMBER_FLAG_DEFAULT gekennzeichnet wurden.

Weitere Informationen finden Sie unter KS-Eigenschaften.

Anforderungen

Anforderung Wert
Header ks.h (einschließlich Ks.h)

Weitere Informationen

KSPROPERTY

KSPROPERTY_SET

KSPROPERTY_VALUES

SRB_GET_DEVICE_PROPERTY

SRB_GET_STREAM_PROPERTY

SRB_SET_DEVICE_PROPERTY

SRB_SET_STREAM_PROPERTY