Freigeben über


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;

Angehörige

PropertyId

Gibt die ID der beschriebenen Eigenschaft an.

GetPropertyHandler

Zeiger auf einen minidriver-bereitgestellten KStrGetPropertyHandler. Wenn NULL-, kann die Eigenschaft nicht gelesen werden. Dieses Element wird nur von Treibern verwendet, die die AVStream- oder Stream-Klassenschnittstellen verwenden.

GetSupported

Wird auf TRUE festgelegt, wenn diese Eigenschaft Anforderungen unterstützt, FALSE-, wenn dies nicht der Fall ist. (Der Klassentreiber erfüllt die Anforderung über die SRB_GET_DEVICE_PROPERTY- oder SRB_GET_STREAM_PROPERTY Anforderungen.) Dieses Mitglied wird nur von Minidrivern verwendet, die unter der Streamklasse ausgeführt werden.

MinProperty

Gibt die minimale Pufferlänge an, die den Eigenschaftenbezeichner enthalten soll. Dies muss mindestens Größe(KSPROPERTY) sein.

MinData

Gibt die minimale Pufferlänge an, die die Daten enthält, die aus dieser Eigenschaft gelesen oder in diese Eigenschaft geschrieben werden sollen.

SetPropertyHandler

Zeiger auf einen minidriver-bereitgestellten KStrSetPropertyHandler. Wenn NULL-, kann die Eigenschaft nicht festgelegt werden. Dieses Element wird nur von Treibern verwendet, die die AVStream- oder Stream-Klassenschnittstellen verwenden.

SetSupported

Wird auf TRUE festgelegt, wenn diese Eigenschaft Setanforderungen unterstützt, FALSE-, wenn 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. Dies sind identisch mit den Werten, die von einem Treiber als Reaktion auf eine IOCTL_KS_PROPERTY Anforderung gemeldet werden, wobei die KSPROPERTY_TYPE_BASICSUPPORT und KSPROPERTY_TYPE_DEFAULTVALUES Flags festgelegt sind.

RelationsCount

Gibt die Anzahl der Einträge im Array an, auf die durch das Relations Member verwiesen wird.

Relations

Verweist auf ein Array von KSPROPERTY- Strukturen, die Eigenschaften im Zusammenhang mit diesem darstellen. Zwei Eigenschaften werden als verknüpft betrachtet, wenn sich eine Eigenschaft ändern kann, den Wert der anderen Eigenschaft beeinflussen. Das Flags Mitglied jedes Eintrags wird nicht verwendet.

SupportHandler

Geben Sie dieses Mitglied nur an, wenn Sie Ihr eigenes Format für die rohe Serialisierung oder die Unformatierung implementieren. Grundlegende Supportabfragen, Bereichsabfragen und Beziehungsabfragen werden automatisch von AVStream verarbeitet, wodurch die relevanten Werte aus anderen Mitgliedern dieser KSPROPERTY_ITEM Struktur zurückgegeben werden.

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.

Bemerkungen

Stream-Klassen-Minidriver verwenden KSPROPERTY_ITEM, um dem Client zu beschreiben, wie Eigenschaftsanforderungen für jede Eigenschaft innerhalb eines Satzes 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 Eigenschaftsanforderungen im Auftrag 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 behandelt die verschiedenen Anforderungstypen, wie in der folgenden Tabelle aufgeführt.

Eigenschaftsanforderungskennzeichnungswert Antwort
KSPROPERTY_TYPE_GET Wenn GetSupportedTRUEist, sendet der Streamklassentreiber eine SRB_GET_DEVICE_PROPERTY oder SRB_GET_STREAM_PROPERTY Anforderung an den entsprechenden Minidriver StrMiniReceiveXXXRequest Routine.
KSPROPERTY_TYPE_SET Wenn SetSupportedTRUEist, sendet der Streamklassentreiber eine SRB_SET_DEVICE_PROPERTY oder SRB_SET_STREAM_PROPERTY Anforderung an den entsprechenden Minidriver StrMiniReceiveXXXRequest Routine.
KSPROPERTY_TYPE_BASICSUPPORT Der Streamklassentreiber verwendet KSPROPERTY_ITEM, um die informationen zu erhalten, die zum Erfüllen dieser Anforderung erforderlich sind. Um beispielsweise den Datentyp und die zulässigen Bereiche der Eigenschaftendaten anzugeben, verwenden sie jeweils das Values Member dieser Struktur.
KSPROPERTY_TYPE_SETSUPPORT Der Streamklassentreiber schließt die Eigenschaftsanforderungs-IRP als STATUS_SUCCESS nur ab, wenn der Treiber einen Eintrag für die Eigenschaft innerhalb der KSPROPERTY_SET Struktur 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 das Relations Member, um zu bestimmen, welche Eigenschaften mit dieser Eigenschaft zusammenhängen.

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 Kennzeichen ähnelt KSPROPERTY_TYPE_BASICSUPPORT, außer dass zurückgegebene Werte diejenigen sind, die im Flags Element der Struktur KSPROPERTY_MEMBERSHEADERmit KSPROPERTY_MEMBER_FLAG_DEFAULT gekennzeichnet wurden.

Weitere Informationen finden Sie unter KS Properties.

Anforderungen

Anforderung Wert
Header- ks.h (enthalten Ks.h)

Siehe auch

KSPROPERTY-

KSPROPERTY_SET

KSPROPERTY_VALUES

SRB_GET_DEVICE_PROPERTY

SRB_GET_STREAM_PROPERTY

SRB_SET_DEVICE_PROPERTY

SRB_SET_STREAM_PROPERTY