Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
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. Di conseguenza, le relative definizioni sono identiche.
Syntax
struct KSPROPERTY {
GUID Set;
ULONG Id;
ULONG Flags;
};
Members
Set
Specifica un GUID che identifica un set di proprietà di streaming del kernel. For more information about property set GUIDs, see the Remarks section below.
Id
Specifica il membro del set di proprietà.
Flags
Specifica il tipo di richiesta. 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. Alcuni flag possono essere combinati usando un'operazione OR bit per bit.
| Value | Description |
|---|---|
| KSPROPERTY_TYPE_GET | Recupera il valore dell'elemento della proprietà specificato. |
| KSPROPERTY_TYPE_SET | Imposta il valore dell'elemento della proprietà specificato. |
| KSPROPERTY_TYPE_SETSUPPORT | Esegue query se il driver supporta questo set di proprietà. |
| KSPROPERTY_TYPE_BASICSUPPORT | Esegue una query sui tipi di richiesta gestiti dal driver per questo elemento della proprietà. Returns KSPROPERTY_TYPE_GET or KSPROPERTY_TYPE_SET or both. Tutti i set di proprietà devono supportare questo flag. |
| KSPROPERTY_TYPE_DEFAULTVALUES | Esegue una query sui valori predefiniti per l'elemento della proprietà specificato. Returns a structure of type KSPROPERTY_VALUES. |
| KSPROPERTY_TYPE_RELATIONS | Esegue una query su tutte le proprietà con dipendenze dall'impostazione corrente di questa proprietà. Specifica che l'elenco delle relazioni di proprietà deve essere restituito o la quantità di spazio buffer richiesto da tale elenco se il buffer restituito è la dimensione di una ULONG. Each element is on FILE_QUAD_ALIGNMENT, preceded by a KSMULTIPLE_ITEM structure. Questa operazione non è valida quando si esegue una query sul supporto del set di proprietà in generale. Tutti i set di proprietà devono supportare questo flag. |
| 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. Una dimensione pari a zero indica che non è necessario serializzare una proprietà. |
| KSPROPERTY_TYPE_SERIALIZERAW | Specifica che le proprietà di questo set devono essere serializzate dal gestore di supporto del set di proprietà, se presente. In caso contrario, la chiamata ha esito negativo. Il formato di serializzazione è privato. 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. Non impostare questo flag autonomamente; In alternativa, OR con altri flag in questa tabella. |
| KSPROPERTY_TYPE_UNSERIALIZERAW | Specifica che il buffer fornito contiene un gruppo di proprietà che appartengono a questo set che devono essere annullate dal gestore di supporto del set di proprietà, se presente. In caso contrario, la chiamata ha esito negativo. Il formato di serializzazione è privato. This operation must be the inverse of KSPROPERTY_TYPE_SERIALIZERAW. |
Remarks
Le dimensioni del buffer di output passato determinano i dati restituiti da una richiesta di KSPROPERTY_TYPE_BASICSUPPORT. Se il buffer di output è la dimensione di una ULONG, vengono restituiti solo i flag di accesso. 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.
Per una richiesta di KSPROPERTY_TYPE_RELATIONS, i dati restituiti dipendono anche dalle dimensioni del buffer di output. 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. Quando si usa questo gestore, la definizione del set di proprietà controlla quali proprietà devono essere serializzate.
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. Se il valore del membro SerializedSize è 1, è sconosciuto e deve essere sottoposto a query (tutte le proprietà sconosciute iniziano con una struttura KSMULTIPLE_ITEM su cui è possibile eseguire query separatamente). 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. Un buffer allocato che le dimensioni possono quindi essere riempite con i dati serializzati.
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. È anche possibile eseguire query sulle dimensioni del buffer necessarie per la serializzazione passando un buffer di lunghezza zero a una richiesta non elaborata serializza. 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. Questo gestore può gestire più proprietà all'interno del set.
Microsoft fornisce diversi GUID dei set di proprietà definiti dal sistema. 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.
Per altre informazioni sugli eventi di streaming del kernel, vedere proprietà, eventi e metodi KS.
Requirements
Header: ks.h (include Ks.h)