Partilhar via


Função KsPinDataIntersection (ks.h)

A função KsPinDataIntersection manipula a propriedade KSPROPERTY_PIN_DATAINTERSECTION por meio de uma função de retorno de chamada e executa grande parte da validação inicial dos parâmetros que são passados. KsPinDataIntersection chama a função de retorno de chamada KStrIntersectHand ler definida pelo minidriver com cada intervalo de dados em potencial depois de correspondê-la à lista de intervalos de dados atribuídos a esse pin factory.

Sintaxe

KSDDKAPI NTSTATUS KsPinDataIntersection(
  [in]            PIRP                   Irp,
  [in]            PKSP_PIN               Pin,
  [out, optional] PVOID                  Data,
  [in]            ULONG                  DescriptorsCount,
  [in]            const KSPIN_DESCRIPTOR *Descriptor,
  [in]            PFNKSINTERSECTHANDLER  IntersectHandler
);

Parâmetros

[in] Irp

Especifica o IRP que descreve a solicitação de propriedade.

[in] Pin

Especifica a propriedade específica que está sendo consultada.

[out, optional] Data

Especifica os dados específicos da propriedade do pin.

[in] DescriptorsCount

Especifica o número de estruturas de descritor.

[in] Descriptor

Especifica o ponteiro para a lista de estruturas de informações de pin.

[in] IntersectHandler

Especifica a função de retorno de chamada KStrIntersectHandler definida pelo minidriver para comparar um intervalo de dados.

Valor de retorno

A função KsPinDataIntersection retorna STATUS_SUCCESS se um intervalo de correspondência for encontrado, STATUS_NO_MATCH se nenhum intervalo de correspondência foi encontrado ou um erro específico à propriedade que está sendo tratada. O manipulador de interseção KStrIntersectHand ler definido pelo minidriver fornecido para KsPinDataIntersection é chamado com cada intervalo de dados fornecido pelo chamador até que uma correspondência seja encontrada ou ocorra um erro.

Observe que a função de retorno de chamada KStrIntersectHandler definida pelo minidriver tem seu próprio conjunto de valores retornados.

Observações

Uma correspondência pode ocorrer em três condições: se o formato principal do intervalo passado for um curinga ou corresponder a um intervalo de fábrica de pinos, se o subformato for um curinga ou corresponder, e se o especificador for um curinga ou corresponder. Como o tamanho do intervalo de dados pode ser variável, ele não é validado além de verificar se ele tem pelo menos o tamanho de uma estrutura KSDATARANGE.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho ks.h (incluir Ks.h)
biblioteca Ks.lib

Consulte também

KSDATARANGE

KStrIntersectHandler