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
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:
- Der Handler kann QueryInterface auf der IUnknown-Schnittstelle des MajorTarget-Objekts aufrufen, um einen Verweis auf die IMiniportWaveCyclic-Schnittstelle des Objekts abzurufen.
- Der Handler kann QueryInterface auf der IUnknown-Schnittstelle des MinorTarget-Objekts aufrufen, um einen Verweis auf die IMiniportWaveCyclicStream-Schnittstelle des Objekts abzurufen.
Anforderungen
Anforderung | Wert |
---|---|
Header | portcls.h (portcls.h einschließen) |