Compartilhar via


Função KsPinDataIntersectionEx (ks.h)

A função KsPinDataIntersectionEx manipula o KSPROPERTY_PIN_DATAINTERSECTION por meio de uma função de retorno de chamada.

Sintaxe

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

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] 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 pin.

[in] DescriptorSize

Tamanho das estruturas do descritor, em bytes.

[in, optional] IntersectHandler

Contém a função de retorno de chamada KStrIntersectHandlerEx definida pelo minidriver opcional para comparar intervalos de dados.

[in, optional] HandlerContext

Contexto opcional fornecido ao manipulador.

Retornar valor

Retorna STATUS_SUCCESS; caso contrário, um erro específico para a propriedade que está sendo tratada.

Comentários

KsPinDataIntersectionEx é muito semelhante a KsPinDataIntersection, exceto por algumas das seguintes pequenas diferenças:

  • Em KsPinDataIntersectionEx, o tamanho do descritor é passado, um recurso que permite descritores estendidos.
  • A função de retorno de chamada de interseção de dados é protótipo diferente na versão estendida (Retorno de chamada NTSTATUS (Context, Irp, Pin, DataRange, MatchingDataRange, DataBufferSize, Data, DataSize)) versus KsPinDataIntersection (Retorno de chamada NTSTATUS (Irp, Pin, DataRange, Data)).
  • O comprimento do buffer de saída (Dados) é passado como um parâmetro para a função de retorno de chamada de interseção de dados (DataBufferSize) em vez de ser extraído do local da pilha de E/S atual.
  • A função de retorno de chamada de interseção de dados é passada um parâmetro Context (o mesmo parâmetro Context passado para KsPinDataIntersectionEx).
  • O tamanho do formato resultante é passado novamente no DataSize em vez de Irp->IoStatus.Information.
Essas diferenças, exceto KsPinDataIntersection e KsPinDataIntersectionEx , operam da mesma forma.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho ks.h (inclua Ks.h)

Confira também

KStrIntersectHandlerEx