PCPROPERTY_REQUEST-Struktur (portcls.h)

Die PCPROPERTY_REQUEST-Struktur gibt eine Eigenschaftsanforderung an.

Syntax

typedef struct _PCPROPERTY_REQUEST {
  PUNKNOWN              MajorTarget;
  PUNKNOWN              MinorTarget;
  ULONG                 Node;
  const PCPROPERTY_ITEM *PropertyItem;
  ULONG                 Verb;
  ULONG                 InstanceSize;
  PVOID                 Instance;
  ULONG                 ValueSize;
  PVOID                 Value;
  PIRP                  Irp;
} PCPROPERTY_REQUEST, *PPCPROPERTY_REQUEST;

Member

MajorTarget

IUnknown-Zeiger auf das Standard Miniportobjekt. Dieser Member enthält den UnknownMiniport-Parameterwert , den der Adaptertreiber zuvor an die IPort::Init-Methode übergeben hat.

MinorTarget

IUnknown-Zeiger auf ein Streamobjekt, das dem MajorTarget-Miniportobjekt zugeordnet ist. Wenn das Ziel für die Eigenschaftenanforderung ein anheften instance ist, enthält dieses Element den Streamobjektzeiger, den die IMiniport Xxx::NewStream-Methode zuvor an den Porttreiber ausgegeben hat (z. B. der Stream-Parameter der IMiniportWaveCyclic::NewStream-Methode). Andernfalls (wenn das Ziel für die Eigenschaftenanforderung ein Filter instance ist), ist dieser Member NULL.

Node

Gibt eine Knoten-ID an. Dieser Member identifiziert den Zielknoten für die Anforderung. Wenn das Ziel kein Knoten ist, wird dieser Member auf ULONG(-1) festgelegt.

PropertyItem

Zeiger auf das Eigenschaftselement, bei dem es sich um eine Struktur vom Typ PCPROPERTY_ITEM.

Verb

Gibt den Typ der Eigenschaftsanforderung an. Verb ist auf das bitweise OR eines oder mehrerer der folgenden Flagbits aus der Headerdatei ks.h festgelegt:

  • KSPROPERTY_TYPE_GET
  • KSPROPERTY_TYPE_SET
  • KSPROPERTY_TYPE_SETSUPPORT
  • KSPROPERTY_TYPE_BASICSUPPORT
  • KSPROPERTY_TYPE_RELATIONS
  • KSPROPERTY_TYPE_SERIALIZESET
  • KSPROPERTY_TYPE_UNSERIALIZESET
  • KSPROPERTY_TYPE_SERIALIZERAW
  • KSPROPERTY_TYPE_UNSERIALIZERAW
  • KSPROPERTY_TYPE_SERIALIZESIZE
  • KSPROPERTY_TYPE_DEFAULTVALUES
  • KSPROPERTY_TYPE_TOPOLOGY
Diese Flags werden in KSPROPERTY beschrieben.

InstanceSize

Gibt die Größe des Property-instance-Puffers in Byte an.

Instance

Zeiger auf den Eigenschaftenpuffer instance

ValueSize

Gibt die Größe des Eigenschaftswertpuffers in Byte an.

Value

Zeiger auf den Eigenschaften-Wert-Puffer

Irp

Zeiger auf das IRP , das die ursprüngliche Eigenschaftsanforderung des Clients enthält

Hinweise

Dies ist die Struktur, die der Porttreiber an die Property-Handler-Routine des Miniporttreibers übergibt. Die PCPROPERTY_ITEM-Struktur enthält einen Funktionszeiger auf einen Eigenschaftshandler, der einen PCPROPERTY_REQUEST-Zeiger als einzigen Aufrufparameter verwendet. Der Porttreiber ordnet eine PCPROPERTY_REQUEST-Struktur zu, extrahiert die relevanten Informationen aus der ursprünglichen Eigenschaftenanforderung (auf die der Irp-Member verweist) und lädt die Informationen in diese Struktur, bevor der Handler aufgerufen wird.

In WDM-Audio kann das Ziel einer Eigenschaftsanforderung entweder ein Filter instance oder eine Stecknadel instance sein. Das Ziel kann auch eine Knoten-ID enthalten.

In der ursprünglichen Eigenschaftsanforderung des Clients beginnen die Eigenschaftendaten mit instance immer mit einer KSPROPERTY- oder KSNODEPROPERTY-Struktur, können jedoch zusätzliche Informationen enthalten. Der Porttreiber passt den Instanzmember der PCPROPERTY_REQUEST Struktur so an, dass er auf diese zusätzlichen Informationen verweist, sofern vorhanden. Weitere Informationen finden Sie unter Handler für Audioeigenschaften.

Die Member MajorTarget und MinorTarget sind IUnknown-Zeiger auf das Standard Miniportobjekt bzw. ein zugeordnetes Streamobjekt. Der Eigenschaftenhandler kann diese Objekte für ihre Miniport- und Streamschnittstellen abfragen. Wenn das Ziel für die Eigenschaftenanforderung ein Filter instance ist, verweist MajorTarget auf das Miniportobjekt für diesen Filter instance, und MinorTarget ist NULL. Wenn das Ziel ein Pin-instance ist, zeigt MinorTarget auf das Streamobjekt für diesen Pin und MajorTarget auf das Miniportobjekt für den Filter, an den der Pin angefügt ist.

Wenn das Ziel für die Eigenschaftenanforderung beispielsweise eine Pin instance für einen WaveCyclic-Filter ist:

Hintergrundinformationen zu Audioeigenschaften finden Sie unter Audioendpunkte, Eigenschaften und Ereignisse. Eine Liste der verfügbaren audiospezifischen Eigenschaften finden Sie unter Eigenschaftensätze für Audiotreiber.

Anforderungen

Anforderung Wert
Header portcls.h (portcls.h einschließen)

Weitere Informationen

KSNODEPROPERTY

KSNODEPROPERTY_AUDIO_CHANNEL

KSPROPERTY

PCPROPERTY_ITEM