Freigeben über


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;

Angehörige

Set

Gibt den Eigenschaftensatz an. Dieses Element ist ein Zeiger auf eine GUID, die den Eigenschaftensatz eindeutig identifiziert. Sehen Sie sich die Liste der Eigenschaftensatz-GUIDs in Eigenschaftensätze für Audiotreiberan.

Id

Gibt die Eigenschafts-ID an. Dieses Element identifiziert ein Eigenschaftselement innerhalb des Eigenschaftensatzes. Wenn der Eigenschaftensatz N-Elemente enthält, sind gültige Eigenschafts-IDs ganze Zahlen im Bereich 0 bis N-1.

Flags

Gibt die Typen von Eigenschaftsanforderungen an, die der Treiber unterstützt. Legen Sie dieses Element auf den bitweisen 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 Anforderung der Standardwerte des Treibers für die Eigenschaftsdaten.
PCPROPERTY_ITEM_FLAG_BASICSUPPORT Anforderung für grundlegende Unterstützung, die angibt, welche Anforderungstypen der Treiber für diese Eigenschaft verarbeitet, und gibt auch den gültigen Datentyp und die gültigen Bereiche für die Eigenschaftsdaten an.
PCPROPERTY_ITEM_FLAG_SERIALIZESIZE Anforderung der Größe der Eigenschaftsdaten für diese Eigenschaft, wenn sie als Teil einer KSPROPERTY_TYPE_SERIALIZESET Anforderung serialisiert wird.
PCPROPERTY_ITEM_FLAG_SERIALIZERAW Anforderung, diese Eigenschaft auf treiberabhängige Weise zu serialisieren. Dieser Vorgang ist die Umkehrung von PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW.
PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW Anforderung, diese Eigenschaft auf treiberabhängige Weise zu entialisieren. Dieser Vorgang ist die Umkehrung 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. Dieses Element ist ein Funktionszeiger vom Typ PCPFNPROPERTY_HANDLER, der wie folgt definiert ist:

  typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)
  (
      IN PPCPROPERTY_REQUEST  PropertyRequest
  );

Siehe den folgenden Abschnitt "Hinweise".

Bemerkungen

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 Handler Routine übergibt der Aufrufer einen einzelnen Aufrufparameter, bei dem es sich um einen Zeiger auf eine PCPROPERTY_REQUEST Struktur handelt. Diese Struktur wird vom Aufrufer zugewiesen, und der Anrufer gibt sie unter einer der folgenden Bedingungen frei:

  1. Wenn der Handler Routine einen anderen Statuscode als STATUS_PENDING zurückgibt, gibt der Aufrufer die Struktur frei. In diesem Fall sollte der Miniporttreiber nicht versuchen, auf die Struktur zuzugreifen, nachdem der Handler Routine zurückgegeben wurde.
  2. Der Handler Routine 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 Aufrufen PcCompletePendingPropertyRequestsollte der Miniporttreiber nicht versuchen, auf die Struktur zuzugreifen.
Wenn der Miniporttreiber versucht, auf die Struktur zuzugreifen, nachdem sie freigegeben wurde, wird diese Aktion wahrscheinlich zu einer Fehlerüberprüfung oder zum Beschädigten des Arbeitsspeichers eines anderen Treibers führen.

Weitere Informationen zur Serialisierung und unformatierten Serialisierung eines Eigenschaftensatzes finden Sie unter KS Properties.

Anforderungen

Anforderung Wert
Header- portcls.h (include Portcls.h)

Siehe auch

PCPROPERTY_REQUEST

PcCompletePendingPropertyRequest