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 são identificados como específicos 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 alta ordem para baixo. Isso deixa a opção de mover a borda entre a parte comum e a parte de extensão se houver necessidade de fazê-lo no futuro. As extensões às estruturas de dados são atribuídas a um campo de tamanho variavelmente com tamanho/deslocamento sendo 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 da versão de extensão no qual o aplicativo e o provedor de serviço 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. Os Identificadores Globalmente Exclusivos foram projetados para serem distinguíveis de identificadores universalmente exclusivos HP/DEC e, portanto, são totalmente compatíveis com eles.