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) |