Compartilhar via


estrutura PCPROPERTY_REQUEST (portcls.h)

A estrutura PCPROPERTY_REQUEST especifica uma solicitação de propriedade.

Sintaxe

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;

Membros

MajorTarget

Ponteiro IUnknown para o objeto de miniport main. Esse membro contém o valor do parâmetro UnknownMiniport que o driver do adaptador passou anteriormente para o método IPort::Init .

MinorTarget

Ponteiro IUnknown para um objeto de fluxo associado ao objeto de miniporto MajorTarget . Se o destino da solicitação de propriedade for uma instância de pin, esse membro conterá o ponteiro stream-object que o método IMiniport Xxx::NewStream gera anteriormente para o driver de porta (por exemplo, o parâmetro Stream do método IMiniportWaveCyclic::NewStream). Caso contrário (se o destino da solicitação de propriedade for uma instância de filtro), esse membro será NULL.

Node

Especifica uma ID de nó. Esse membro identifica o nó de destino para a solicitação. Se o destino não for um nó, esse membro será definido como ULONG(-1).

PropertyItem

Ponteiro para o item de propriedade, que é uma estrutura do tipo PCPROPERTY_ITEM.

Verb

Especifica o tipo de solicitação de propriedade. Verbo é definido como o OR bit a bit de um ou mais dos seguintes bits de sinalizador do arquivo de cabeçalho 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
Esses sinalizadores são descritos em KSPROPERTY.

InstanceSize

Especifica o tamanho em bytes do buffer de instância de propriedade.

Instance

Ponteiro para o buffer de instância de propriedade

ValueSize

Especifica o tamanho em bytes do buffer de propriedade-valor.

Value

Ponteiro para o buffer de valor de propriedade

Irp

Ponteiro para o IRP que contém a solicitação de propriedade original do cliente

Comentários

Essa é a estrutura que o driver de porta passa para a rotina do manipulador de propriedades do driver de miniport. A estrutura PCPROPERTY_ITEM contém um ponteiro de função para um manipulador de propriedades que usa um ponteiro PCPROPERTY_REQUEST como seu único parâmetro de chamada. O driver de porta aloca uma estrutura PCPROPERTY_REQUEST , extrai as informações relevantes da solicitação de propriedade original (para a qual o membro irp aponta) e carrega as informações nessa estrutura antes de chamar o manipulador.

No áudio WDM, o destino de uma solicitação de propriedade pode ser uma instância de filtro ou uma instância de pin. O destino também pode incluir uma ID de nó.

Na solicitação de propriedade original do cliente, os dados da instância de propriedade sempre começam com uma estrutura KSPROPERTY ou KSNODEPROPERTY , mas podem incluir informações adicionais. O driver de porta ajusta o membro instância da estrutura PCPROPERTY_REQUEST para apontar para essas informações adicionais, se elas existirem. Para obter detalhes, consulte Manipuladores de propriedade de áudio.

Os membros MajorTarget e MinorTarget são ponteiros IUnknown para o objeto de miniporto main e um objeto de fluxo associado, respectivamente. O manipulador de propriedades pode consultar esses objetos para suas interfaces de miniporto e fluxo. Se o destino da solicitação de propriedade for uma instância de filtro, MajorTarget apontará para o objeto miniport para essa instância de filtro e MinorTarget será NULL. Se o destino for uma instância de pino, MinorTarget apontará para o objeto de fluxo desse pino e MajorTarget apontará para o objeto miniport para o filtro ao qual o pino está anexado.

Por exemplo, se o destino da solicitação de propriedade for uma instância de fixação em um filtro WaveCyclic:

Para obter informações em segundo plano sobre propriedades de áudio, consulte Pontos de extremidade de áudio, propriedades e eventos. Para obter uma lista das propriedades específicas de áudio disponíveis, consulte Conjuntos de Propriedades de Drivers de Áudio.

Requisitos

Requisito Valor
Cabeçalho portcls.h (inclua Portcls.h)

Confira também

KSNODEPROPERTY

KSNODEPROPERTY_AUDIO_CHANNEL

KSPROPERTY

PCPROPERTY_ITEM