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