estrutura PCPROPERTY_ITEM (portcls.h)
A estrutura PCPROPERTY_ITEM descreve uma propriedade compatível com um filtro, pino ou nó específico.
Sintaxe
typedef struct {
const GUID *Set;
ULONG Id;
ULONG Flags;
PCPFNPROPERTY_HANDLER Handler;
} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
Membros
Set
Especifica o conjunto de propriedades. Esse membro é um ponteiro para um GUID que identifica exclusivamente o conjunto de propriedades. Consulte a lista de GUIDs do conjunto de propriedades em Conjuntos de Propriedades de Drivers de Áudio.
Id
Especifica a ID da propriedade. Esse membro identifica um item de propriedade dentro do conjunto de propriedades. Se o conjunto de propriedades contiver N itens, as IDs de propriedade válidas serão inteiros no intervalo de 0 a N-1.
Flags
Especifica os tipos de solicitações de propriedade compatíveis com o driver. Defina esse membro como OR bit a bit de alguns ou todos os bits de sinalizador que aparecem na tabela a seguir.
Bits de sinalizador | Tipo de solicitação de propriedade |
---|---|
PCPROPERTY_ITEM_FLAG_GET | Solicitação para obter a configuração de dados de propriedade atual. |
PCPROPERTY_ITEM_FLAG_SET | Solicitação para definir a configuração de dados de propriedade atual. |
PCPROPERTY_ITEM_FLAG_DEFAULTVALUES | Solicite os valores padrão do driver para os dados da propriedade. |
PCPROPERTY_ITEM_FLAG_BASICSUPPORT | Solicitação de suporte básico, que especifica quais tipos de solicitação o driver manipula para essa propriedade e também especifica o tipo de dados válido e os intervalos válidos para os dados da propriedade. |
PCPROPERTY_ITEM_FLAG_SERIALIZESIZE | Solicite o tamanho dos dados de propriedade para essa propriedade quando ela for serializada como parte de uma solicitação de KSPROPERTY_TYPE_SERIALIZESET. |
PCPROPERTY_ITEM_FLAG_SERIALIZERAW | Solicitação para serializar essa propriedade de maneira dependente do driver. Essa operação é o inverso de PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | Solicite a deserialização dessa propriedade de maneira dependente do driver. Essa operação é o inverso de PCPROPERTY_ITEM_FLAG_SERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_SERIALIZE | PCPROPERTY_ITEM_FLAG_SERIALIZERAW | PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | PCPROPERTY_ITEM_FLAG_SERIALIZESIZE |
Handler
Ponteiro para a rotina do manipulador de propriedades. Esse membro é um ponteiro de função do tipo PCPFNPROPERTY_HANDLER, que é definido da seguinte maneira:
typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)
(
IN PPCPROPERTY_REQUEST PropertyRequest
);
Consulte a seção Comentários a seguir.
Comentários
A estrutura PCPROPERTY_ITEM especifica um item de propriedade específico em uma tabela de automação. A estrutura PCAUTOMATION_TABLE aponta para uma matriz de estruturas PCPROPERTY_ITEM .
Ao chamar a rotina Handler , o chamador passa um único parâmetro de chamada, que é um ponteiro para uma estrutura PCPROPERTY_REQUEST . Essa estrutura é alocada pelo chamador e o chamador a libera em qualquer uma das seguintes condições:
- Se a rotina Manipulador retornar qualquer código status diferente de STATUS_PENDING, o chamador liberará a estrutura. Nesse caso, o driver de miniporto não deve tentar acessar a estrutura depois que a rotina Handler retornar.
- A rotina Handler também pode retornar STATUS_PENDING, caso em que o driver de miniporto é obrigado a chamar PcCompletePendingPropertyRequest posteriormente para concluir a solicitação de propriedade pendente. A função PcCompletePendingPropertyRequest libera a estrutura. Depois de chamar PcCompletePendingPropertyRequest, o driver de miniport não deve tentar acessar a estrutura.
Para obter mais informações sobre serialização e serialização bruta de um conjunto de propriedades, consulte Propriedades do KS.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | portcls.h (inclua Portcls.h) |