estrutura PCPROPERTY_ITEM (portcls.h)
A estrutura PCPROPERTY_ITEM descreve uma propriedade com suporte por 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 definidos por propriedades em conjuntos de propriedades 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 | Solicite para obter a configuração de dados de propriedade atual. |
PCPROPERTY_ITEM_FLAG_SET | Solicitação para definir a configuração de dados da propriedade atual. |
PCPROPERTY_ITEM_FLAG_DEFAULTVALUES | Solicite os valores padrão do driver para os dados da propriedade. |
PCPROPERTY_ITEM_FLAG_BASICSUPPORT | Solicite 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 da propriedade para essa propriedade quando ela for serializada como parte de uma solicitação KSPROPERTY_TYPE_SERIALIZESET. |
PCPROPERTY_ITEM_FLAG_SERIALIZERAW | Solicite serializar essa propriedade de maneira dependente do driver. Esta operação é o inverso de PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW. |
PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | Solicite a deserialização dessa propriedade de maneira dependente do driver. Esta 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.
Observações
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 manipulador de, 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 de retornar qualquer código de status diferente de STATUS_PENDING, o chamador liberará a estrutura. Nesse caso, o driver de miniporto não deve tentar acessar a estrutura após o retorno da rotina de do Manipulador de.
- A rotina de do Manipulador de 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 KS.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | portcls.h (inclua Portcls.h) |