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) |