Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
The KSPROPERTY structure specifies a single kernel streaming property within a property set.
The KSEVENT, KSMETHOD, and KSPROPERTY structures are aliases for the KSIDENTIFIER structure. Bu nedenle tanımları aynıdır.
Syntax
struct KSPROPERTY {
GUID Set;
ULONG Id;
ULONG Flags;
};
Members
Set
Çekirdek akış özellik kümesini tanımlayan bir GUID belirtir. For more information about property set GUIDs, see the Remarks section below.
Id
Özellik kümesinin üyesini belirtir.
Flags
İstek türünü belirtir. If you are writing a stream class minidriver, also see KSPROPERTY_ITEM for class-specific flag information.
Flags should be one of the values listed in the following table. Bazı bayraklar bit düzeyinde OR işlemi kullanılarak birleştirilebilir.
| Value | Description |
|---|---|
| KSPROPERTY_TYPE_GET | Belirtilen özellik öğesinin değerini alır. |
| KSPROPERTY_TYPE_SET | Belirtilen özellik öğesinin değerini ayarlar. |
| KSPROPERTY_TYPE_SETSUPPORT | Sürücü bu özellik kümesini destekliyorsa sorgular. |
| KSPROPERTY_TYPE_BASICSUPPORT | Sürücünün bu özellik öğesi için işlediği istek türlerini sorgular. Returns KSPROPERTY_TYPE_GET or KSPROPERTY_TYPE_SET or both. Tüm özellik kümeleri bu bayrağı desteklemelidir. |
| KSPROPERTY_TYPE_DEFAULTVALUES | Belirtilen özellik öğesi için varsayılan değerleri sorgular. Returns a structure of type KSPROPERTY_VALUES. |
| KSPROPERTY_TYPE_RELATIONS | Bu özelliğin geçerli ayarında bağımlılıkları olan tüm özellikleri sorgular. Özellik ilişkileri listesinin döndürülmesi gerektiğini veya dönüş arabelleği ULONG boyutundaysa, böyle bir listenin gerektirdiği arabellek odası miktarını belirtir. Each element is on FILE_QUAD_ALIGNMENT, preceded by a KSMULTIPLE_ITEM structure. Bu, genel olarak özellik kümesinin desteği sorgulanırken geçerli değildir. Tüm özellik kümeleri bu bayrağı desteklemelidir. |
| KSPROPERTY_TYPE_SERIALIZESET | Serialize the property set, using the standard KSPROPERTY_SERIALHDR and KSPROPERTY_SERIAL structures. |
| KSPROPERTY_TYPE_UNSERIALIZESET | Unserialize the property set, using the standard KSPROPERTY_SERIALHDR and KSPROPERTY_SERIAL structures. |
| KSPROPERTY_TYPE_SERIALIZESIZE | Returns a ULONG specifying size of the property data when serialized as part of a KSPROPERTY_TYPE_SERIALIZESET request. Sıfır boyutu, bir özelliğin seri hale getirilmemesi gerektiğini gösterir. |
| KSPROPERTY_TYPE_SERIALIZERAW | Varsa, bu kümedeki özelliklerin özellik kümesi destek işleyicisi tarafından serileştirilmesi gerektiğini belirtir. Aksi takdirde çağrı başarısız olur. Serileştirme biçimi özeldir. This operation must be the inverse of KSPROPERTY_TYPE_UNSERIALIZERAW. |
| KSPROPERTY_TYPE_TOPOLOGY | Property passed is of type KSP_NODE, where NodeId indicates the numeric ID of the topology node. Bu bayrağı kendi başına ayarlamayın; bunun yerine, VEYA bu tablodaki diğer bayraklarla. |
| KSPROPERTY_TYPE_UNSERIALIZERAW | Sağlanan arabelleğin, varsa özellik kümesi destek işleyicisi tarafından seri durumdan çıkarılacak bu kümeye ait bir özellik grubu içerdiğini belirtir. Aksi takdirde çağrı başarısız olur. Serileştirme biçimi özeldir. This operation must be the inverse of KSPROPERTY_TYPE_SERIALIZERAW. |
Remarks
Geçirilen çıkış arabelleğinin boyutu, bir KSPROPERTY_TYPE_BASICSUPPORT isteğinden hangi verilerin döndürüleceğini belirler. Çıkış arabelleği ULONG boyutundaysa, yalnızca erişim bayrakları döndürülür. If the output buffer is the size of the KSPROPERTY_DESCRIPTION structure, the structure is filled with the access flags, the inclusive size of the entire values information, the property value type information, and the number of member lists that correspond to the structure.
KSPROPERTY_TYPE_RELATIONS isteği için döndürülen veriler çıkış arabelleğinin boyutuna da bağlıdır. If the output buffer size is zero, the size required to return the related properties is returned in BytesReturned with a warning status of STATUS_BUFFER_OVERFLOW. If the buffer is the size of a KSMULTIPLE_ITEM structure, both the byte size and count of relations is returned. Otherwise, the buffer is expected to be long enough to return the KSMULTIPLE_ITEM structure and all related property identifiers, which is returned as a list of KSIDENTIFIER structures.
KSPROPERTY_TYPE_SERIALIZESET and KSPROPERTY_TYPE_UNSERIALIZESET requests allow interaction with multiple properties with a single call from the client. If the kernel streaming handler is being used to process property requests, these are broken up into multiple calls by the KsPropertyHandler function. Bu işleyiciyi kullanırken, özellik kümesi tanımı hangi özelliklerin serileştirileceği denetler.
For serialization requests, the SerializedSize member of the relevant KSPROPERTY_ITEM structure is checked for a nonzero value that indicates the size, in bytes, of the property. SerializedSize üyesinin değeri 1 ise, bilinmiyor ve sorgulanması gerekiyor (tüm bilinmeyen özellikler ayrı olarak sorgulanabilen bir KSMULTIPLE_ITEM yapısıyla başlar). To query for the total size a serialization would take, the client passes a zero length buffer in the call to DeviceIoControl. BytesReturned then returns the size, in bytes, that the buffer must be to serialize the set, and a warning status of STATUS_BUFFER_OVERFLOW. Bu boyuta ayrılan bir arabellek daha sonra serileştirilmiş verilerle doldurulabilir.
The format of the serialization buffer is a KSPROPERTY_SERIALHDR, followed by serialized properties. Each property that follows contains a header (KSPROPERTY_SERIAL), followed by the property data, with the start of each property on FILE_LONG_ALIGNMENT. Note that the serial header structure is defined to be on FILE_LONG_ALIGNMENT.
KSPROPERTY_TYPE_SERIALIZERAW and KSPROPERTY_TYPE_UNSERIALIZERAW are supported if a property item handler exists. The KsPropertyHandler function invokes the handler provided by the minidriver. Serileştirme için gereken arabellek boyutu, bir seri hale getirme ham isteğine sıfır uzunluklu bir arabellek geçirilerek de sorgulanabilir. Because handlers are attached to property items rather than the property set, a specific item within the property set must be specified in the Property parameter. Bu işleyici küme içindeki birden çok özellik ile ilgilenebilir.
Microsoft çeşitli sistem tanımlı özellik kümesi GUID'leri sağlar. Minidrivers specify one of these GUIDs in the Set member. Kernel streaming property sets typically begin with either a KSPROPSETID or a PROPSETID prefix. Kernel streaming property sets are defined in ks.h, ksmedia.h, bdamedia.h, and possibly other header files.
Çekirdek akış olayları hakkında daha fazla bilgi için bkz. KS Özellikleri, Olaylar ve Yöntemler.
Requirements
Header: ks.h (include Ks.h)