PCPROPERTY_ITEM-Struktur (portcls.h)
Die PCPROPERTY_ITEM-Struktur beschreibt eine Eigenschaft, die von einem bestimmten Filter, Pin oder Knoten unterstützt wird.
Syntax
typedef struct {
const GUID *Set;
ULONG Id;
ULONG Flags;
PCPFNPROPERTY_HANDLER Handler;
} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
Member
Set
Gibt den Eigenschaftensatz an. Dieser Member ist ein Zeiger auf eine GUID, die den Eigenschaftensatz eindeutig identifiziert. Weitere Informationen finden Sie in der Liste der EIGENSCHAFTEN-GUIDs unter Eigenschaftensätze für Audiotreiber.
Id
Gibt die Eigenschafts-ID an. Dieser Member identifiziert ein Eigenschaftselement innerhalb des Eigenschaftensatzes. Wenn der Eigenschaftensatz N-Elemente enthält, sind gültige Eigenschafts-IDs ganze Zahlen im Bereich von 0 bis N-1.
Flags
Gibt die Typen von Eigenschaftenanforderungen an, die vom Treiber unterstützt werden. Legen Sie dieses Element auf das bitweise OR einiger oder aller Flagbits fest, die in der folgenden Tabelle angezeigt werden.
Flagbits | Typ der Eigenschaftsanforderung |
---|---|
PCPROPERTY_ITEM_FLAG_GET | Anforderung zum Abrufen der aktuellen Eigenschaftsdateneinstellung. |
PCPROPERTY_ITEM_FLAG_SET | Anforderung zum Festlegen der aktuellen Eigenschaftsdateneinstellung. |
PCPROPERTY_ITEM_FLAG_DEFAULTVALUES | Fordern Sie die Standardwerte des Treibers für die Eigenschaftendaten an. |
PCPROPERTY_ITEM_FLAG_BASICSUPPORT | Anforderung für grundlegende Unterstützung, die angibt, welche Anforderungstypen der Treiber für diese Eigenschaft verarbeitet, sowie den gültigen Datentyp und die gültigen Bereiche für die Eigenschaftendaten. |
PCPROPERTY_ITEM_FLAG_SERIALIZESIZE | Fordern Sie die Größe der Eigenschaftsdaten für diese Eigenschaft an, wenn sie als Teil einer KSPROPERTY_TYPE_SERIALIZESET-Anforderung serialisiert wird. |
PCPROPERTY_ITEM_FLAG_SERIALIZERAW | Anforderung, diese Eigenschaft treiberabhängig zu serialisieren. Dieser Vorgang ist der Umgekehrte von PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | Anforderung, diese Eigenschaft treiberabhängig zu entialisieren. Dieser Vorgang ist der Umgekehrte von PCPROPERTY_ITEM_FLAG_SERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_SERIALIZE | PCPROPERTY_ITEM_FLAG_SERIALIZERAW | PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | PCPROPERTY_ITEM_FLAG_SERIALIZESIZE |
Handler
Zeiger auf die Eigenschaftshandlerroutine. Dieser Member ist ein Funktionszeiger vom Typ PCPFNPROPERTY_HANDLER, der wie folgt definiert ist:
typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)
(
IN PPCPROPERTY_REQUEST PropertyRequest
);
Weitere Informationen finden Sie im abschnitt "Hinweise".
Hinweise
Die PCPROPERTY_ITEM-Struktur gibt ein bestimmtes Eigenschaftselement in einer Automatisierungstabelle an. Die PCAUTOMATION_TABLE-Struktur verweist auf ein Array von PCPROPERTY_ITEM Strukturen.
Beim Aufrufen der Handlerroutine übergibt der Aufrufer einen einzelnen Aufrufparameter, bei dem es sich um einen Zeiger auf eine PCPROPERTY_REQUEST-Struktur handelt. Diese Struktur wird vom Aufrufer zugeordnet, und der Aufrufer gibt sie unter einer der folgenden Bedingungen frei:
- Wenn die Handlerroutine status Code außer STATUS_PENDING zurückgibt, gibt der Aufrufer die -Struktur frei. In diesem Fall sollte der Miniporttreiber nicht versuchen, auf die Struktur zuzugreifen, nachdem die Handlerroutine zurückgegeben wurde.
- Die Handlerroutine kann auch STATUS_PENDING zurückgeben. In diesem Fall ist der Miniporttreiber verpflichtet , PcCompletePendingPropertyRequest zu einem späteren Zeitpunkt aufzurufen, um die ausstehende Eigenschaftsanforderung abzuschließen. Die PcCompletePendingPropertyRequest-Funktion gibt die Struktur frei. Nach dem Aufruf von PcCompletePendingPropertyRequest sollte der Miniporttreiber nicht versuchen, auf die Struktur zuzugreifen.
Weitere Informationen zur Serialisierung und Rohserialisierung eines Eigenschaftensatzes finden Sie unter KS-Eigenschaften.
Anforderungen
Anforderung | Wert |
---|---|
Header | portcls.h (portcls.h einschließen) |