Partager via


structure PCPROPERTY_REQUEST (portcls.h)

La structure PCPROPERTY_REQUEST spécifie une requête de propriété.

Syntaxe

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;

Membres

MajorTarget

pointeur IUnknown vers l’objet miniport principal. Ce membre contient la valeur du paramètre UnknownMiniport que le pilote de l’adaptateur a précédemment passé à la méthode IPort ::Init .

MinorTarget

pointeur IUnknown vers un objet de flux associé à l’objet MajorTarget miniport. Si la cible de la requête de propriété est une instance d’épingle, ce membre contient le pointeur de l’objet stream que la méthode IMiniport Xxx ::NewStream a précédemment générée sur le pilote de port (par exemple, le paramètre Stream de la méthode IMiniportWaveCyclique ::NewStream). Dans le cas contraire (si la cible de la requête de propriété est une instance de filtre), ce membre a la valeur NULL.

Node

Spécifie un ID de nœud. Ce membre identifie le nœud cible de la requête. Si la cible n’est pas un nœud, ce membre est défini sur ULONG(-1).

PropertyItem

Pointeur vers l’élément de propriété, qui est une structure de type PCPROPERTY_ITEM.

Verb

Spécifie le type de requête de propriété. Le verbe est défini sur l’or au niveau du bit d’un ou plusieurs bits d’indicateur suivants à partir du fichier d’en-tête ks.h :

  • 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
Ces indicateurs sont décrits dans KSPROPERTY.

InstanceSize

Spécifie la taille en octets de la mémoire tampon d’instance de propriété.

Instance

Pointeur vers la mémoire tampon d’instance de propriété

ValueSize

Spécifie la taille en octets de la mémoire tampon de valeur de propriété.

Value

Pointeur vers la mémoire tampon de valeur de propriété

Irp

Pointeur vers l’IRP contenant la demande de propriété d’origine du client

Remarques

Il s’agit de la structure que le pilote de port passe à la routine de gestionnaire de propriétés du pilote miniport. La structure PCPROPERTY_ITEM contient un pointeur de fonction vers un gestionnaire de propriétés qui accepte un pointeur PCPROPERTY_REQUEST comme seul paramètre d’appel. Le pilote de port alloue une structure PCPROPERTY_REQUEST , extrait les informations pertinentes de la requête de propriété d’origine (vers laquelle le membre Irp pointe), puis charge les informations dans cette structure avant d’appeler le gestionnaire.

Dans l’audio WDM, la cible d’une requête de propriété peut être une instance de filtre ou une instance de broche. La cible peut également inclure un ID de nœud.

Dans la demande de propriété d’origine du client, les données d’instance de propriété commencent toujours par une structure KSPROPERTY ou KSNODEPROPERTY , mais peuvent inclure des informations supplémentaires. Le pilote de port ajuste le membre d’instance de la structure PCPROPERTY_REQUEST pour qu’il pointe vers ces informations supplémentaires, le cas échéant. Pour plus d’informations, consultez Gestionnaires de propriétés audio.

Les membres MajorTarget et MinorTarget sont pointeurs IUnknown vers l’objet miniport principal et un objet de flux associé, respectivement. Le gestionnaire de propriétés peut interroger ces objets pour leurs interfaces miniport et de flux. Si la cible de la requête de propriété est une instance de filtre, MajorTarget pointe vers l’objet miniport pour cette instance de filtre, et MinorTarget a la valeur NULL. Si la cible est une instance de broche, MinorTarget pointe vers l’objet de flux pour cette broche, et MajorTarget pointe vers l’objet miniport pour le filtre auquel la broche est attachée.

Par exemple, si la cible de la demande de propriété est une instance d’épingle sur un filtre WaveCyclique :

  • Le gestionnaire peut appeler QueryInterface sur l’interface de l’objet MajorTarget IUnknown pour obtenir une référence à l’interface IMiniportWaveCyclique de l’objet.
  • Le gestionnaire peut appeler QueryInterface sur l’interface MinorTarget objet IUnknown pour obtenir une référence à l’interface IMiniportWaveCycliqueStream de l’objet.
Pour plus d’informations sur les propriétés audio, consultez Points de terminaison audio, Propriétés et événements. Pour obtenir la liste des propriétés spécifiques à l’audio disponibles, consultez Les ensembles de propriétés pilotes audio.

Spécifications

Besoin Valeur
En-tête portcls.h (include Portcls.h)

Voir aussi

KSNODEPROPERTY

KSNODEPROPERTY_AUDIO_CHANNEL

KSPROPERTY

PCPROPERTY_ITEM