Extensibilidade

Provisionamentos são feitos para estender constantes e estruturas de maneira independente do dispositivo e de uma maneira específica do dispositivo (específica do fornecedor). Em constantes que são enumerações escalares, um intervalo de valores é reservado para extensões comuns futuras. O restante dos valores é identificado como específico do dispositivo. Um fornecedor pode definir significados para esses valores de qualquer maneira desejada. Sua interpretação é fundamental para o identificador de extensão fornecido na estrutura de dados LINEDEVCAPS . Para constantes definidas como sinalizadores de bits, um intervalo de bits de baixa ordem é reservado, em que os bits de alta ordem podem ser específicos da extensão. É recomendável que valores estendidos e matrizes de bits usem bits do valor mais alto ou bits de ordem alta para baixo. Isso deixará a opção de mover a borda entre a parte comum e a parte de extensão se houver a necessidade de fazer isso no futuro. As extensões para estruturas de dados recebem um campo de tamanho variável com tamanho/deslocamento que faz parte da parte fixa. O TAPI descreve para cada estrutura de dados quais extensões específicas do dispositivo são permitidas.

Além de reconhecer um identificador de extensão específico, o aplicativo deve negociar o número de versão da extensão no qual o aplicativo e o provedor de serviços operam. Isso é feito na segunda fase de negociação de versão da função lineGetDevCaps .

Um identificador de extensão é um identificador global exclusivo. Não há registro central para identificadores de extensão. Em vez disso, eles são gerados localmente pelo fabricante por um utilitário que está disponível com o kit de ferramentas. O número é composto por partes como um endereço LAN exclusivo, hora do dia e número aleatório, para garantir a exclusividade global. Identificadores globalmente exclusivos foram projetados para serem distinguíveis de identificadores universalmente exclusivos HP/DEC e, portanto, são totalmente compatíveis com eles.