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 intersecção. Esse valor é fornecido pelo driver de subunidade (se o driver de subunidade fornecer o manipulador de intersecção) ou pelo driver inferior que fornece o manipulador de intersecçã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 de Dados do. Se isso não for zero, o manipulador de intersecção deverá tentar retornar o formato de dados resultante de um par correspondente de intervalos de dados. Se for zero, o manipulador de intersecção 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

Valor de retorno

O manipulador de intersecção deve retornar STATUS_SUCCESS se os intervalos de dados forem compatíveis e houver espaço em 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 inesperado.
STATUS_BUFFER_OVERFLOW O manipulador de intersecção 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.

Observações

O manipulador de intersecçã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 pin idênticos e devolvê-los ao chamador.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho avc.h (inclua Avc.h)

Consulte também