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