Compartilhar via


Função de retorno de chamada PFNAVCINTERSECTHANDLER (avc.h)

O manipulador de intersecção AV/C determina se os intervalos de dados são compatíveis. Essa é uma função definida pelo usuário com base no seguinte protótipo:

Sintaxe

typedef NTSTATUS ( *PFNAVCINTERSECTHANDLER)(
  _In_      PVOID        Context,
  _In_      ULONG        PinId,
  _In_      PKSDATARANGE CallerDataRange,
  _In_      PKSDATARANGE DescriptorDataRange,
  _In_      ULONG        DataBufferSize,
  _Out_opt_ PVOID        Data,
  _Out_     PULONG       ReportedDataSize
);

Parâmetros

[in] Context

Um valor opcional esperado pelo manipulador de interseção. Esse valor é fornecido pelo driver de subunidade (se o driver de subunidade fornecer o manipulador de interseção) ou pelo driver inferior que fornece o manipulador de interseção.

[in] PinId

Especifica o deslocamento (ou ID) do pino para o qual a interseção está sendo feita.

[in] DataRange

[in] MatchingDataRange

[in] DataBufferSize

O tamanho do buffer passado pelo membro Dados . Se isso for diferente de zero, o manipulador de interseção deverá tentar retornar o formato de dados resultante de um par correspondente de intervalos de dados. Se for zero, o manipulador intersect deverá fornecer o tamanho do buffer necessário em ReportedDataSize e retornar STATUS_BUFFER_OVERFLOW.

[out, optional] Data

Um buffer opcional para receber o formato de dados resultante de um par correspondente de intervalos de dados. Esse membro será ignorado se DataBufferSize for zero.

[out] DataSize

Retornar valor

O manipulador de interseção deve retornar STATUS_SUCCESS se os intervalos de dados forem compatíveis e houver espaço de buffer suficiente para retornar o formato resultante.

Código de retorno Descrição
STATUS_NO_MATCH Os intervalos de dados não são compatíveis.
STATUS_INTERNAL_ERROR Houve uma incompatibilidade de tamanho de formato inesperada.
STATUS_BUFFER_OVERFLOW O manipulador intersect retorna o tamanho do buffer necessário por meio do membro ReportedDataSize .
STATUS_BUFFER_TOO_SMALL O manipulador de intersecção não foi fornecido com um buffer grande o suficiente para manter o formato resultante. O manipulador de intersecção deve ser chamado novamente com o DataBufferSize definido como zero para determinar o tamanho do buffer necessário.
STATUS_INSUFFICIENT_RESOURCES Falha na alocação de buffer interno.

Comentários

O manipulador de interseção AV/C é definido pelo usuário, com base no protótipo de função acima.

O manipulador é usado em conjunto com o código da função AVC_FUNCTION_GET_PIN_DESCRIPTOR . A finalidade do manipulador é corresponder a formatos de dados de pino idênticos e retorná-los ao chamador.

Requisitos

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

Confira também