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
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:
- O manipulador pode chamar QueryInterface na interface IUnknown do objeto MajorTarget para obter uma referência à interface IMiniportWaveCyclic do objeto.
- O manipulador pode chamar QueryInterface na interface IUnknown do objeto MinorTarget para obter uma referência à interface IMiniportWaveCyclicStream do objeto.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | portcls.h (inclua Portcls.h) |