Compartilhar 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 KStrIntersectHandler definida pelo minidriver com cada intervalo de dados em potencial depois de fazer a correspondência com a lista de intervalos de dados atribuídos a esse alocador de pinos.

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 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 pino.

[in] IntersectHandler

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

Retornar valor

A função KsPinDataIntersection retornará STATUS_SUCCESS se um intervalo correspondente for encontrado, STATUS_NO_MATCH se nenhum intervalo correspondente foi encontrado ou um erro específico para a propriedade que está sendo tratada. O manipulador de interseção KStrIntersectHandler 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.

Comentários

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 subformatação 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 é pelo menos o tamanho de uma estrutura KSDATARANGE .

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib

Confira também

KSDATARANGE

KStrIntersectHandler