função TSPI_lineGetID (tspi.h)

A função TSPI_lineGetID retorna um identificador de dispositivo para a classe de dispositivo especificada associada à linha, ao endereço ou à chamada selecionada.

Sintaxe

LONG TSPIAPI TSPI_lineGetID(
  HDRVLINE    hdLine,
  DWORD       dwAddressID,
  HDRVCALL    hdCall,
  DWORD       dwSelect,
  LPVARSTRING lpDeviceID,
  LPCWSTR     lpszDeviceClass,
  HANDLE      hTargetProcess
);

Parâmetros

hdLine

O identificador do provedor de serviços para a linha a ser consultada.

dwAddressID

Um endereço no dispositivo de linha aberta especificado. Um identificador de endereço está permanentemente associado a um endereço; o identificador permanece constante entre as atualizações do sistema operacional. O TAPI não valida esse parâmetro quando essa função é chamada.

hdCall

O identificador do provedor de serviços para a chamada a ser consultada.

dwSelect

Especifica se o identificador de dispositivo solicitado está associado à linha, ao endereço ou a uma única chamada. O parâmetro dwSelect pode ter apenas uma das constantes LINECALLSELECT_.

lpDeviceID

Um ponteiro para o local de memória do tipo VARSTRING em que o identificador do dispositivo é retornado. Após a conclusão bem-sucedida da solicitação, esse local é preenchido com o identificador do dispositivo. O formato das informações retornadas depende do método usado pela API (classe de dispositivo) para nomear dispositivos.

lpszDeviceClass

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que especifica a classe de dispositivo do dispositivo cujo identificador é solicitado. Cadeias de caracteres de classe de dispositivo válidas são aquelas usadas na seção System.ini para identificar classes de dispositivo (como COM, Wave e MCI.)

hTargetProcess

O identificador de processo do aplicativo em nome do qual a função TSPI_lineGetID é invocada. Se as informações retornadas na estrutura VARSTRING incluirem um identificador para uso pelo aplicativo, o provedor de serviços deverá criar ou duplicar o identificador para o processo.

Se hTargetProcess estiver definido como INVALID_HANDLE_VALUE, o aplicativo será executado em um sistema cliente remoto e não será possível criar um identificador duplicado diretamente. Em vez disso, a estrutura VARSTRING deve conter um nome UNC de um dispositivo de rede ou outro nome que o cliente remoto possa usar para acessar o dispositivo. Se isso não for possível, a função deverá falhar.

Retornar valor

Retornará zero se a função for bem-sucedida ou um número de erro se ocorrer um erro. Os possíveis valores retornados são os seguintes:

LINEERR_INVALLINEHANDLE, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONFAILED, LINEERR_NODEVICE, LINEERR_RESOURCEUNAVAIL.

Comentários

A prestação de serviço retornará LINEERR_INVALLINEHANDLE se dwSelect for LINECALLSELECT_LINE ou LINECALLSELECT_ADDRESS e hdLine for inválido.

O provedor de serviços retornará LINEERR_INVALCALLHANDLE se dwSelect for LINECALLSELECT_CALL e hdCall for inválido.

O provedor de serviços deve dar suporte à classe de dispositivo tapi/line para permitir que os aplicativos determinem o identificador de dispositivo de linha real de uma linha aberta. Nesse caso, os dados da variável retornados são dwDeviceID. Para obter mais informações sobre nomes comuns de classe de dispositivo, consulte Classes de dispositivo TSPI.

Um fornecedor que define um tipo de mídia específico do dispositivo também precisa definir a API (proprietária) específica do dispositivo correspondente para gerenciar dispositivos do tipo de mídia. Para evitar colisões em nomes de classe de dispositivo atribuídos independentemente por diferentes fornecedores, um fornecedor deve selecionar um nome que identifique exclusivamente o fornecedor e, em seguida, o tipo de mídia; por exemplo: "intel/video".

O provedor de serviços preenche todos os membros da estrutura de dados VARSTRING , exceto dwTotalSize, que é preenchido pelo TAPI. O provedor de serviços não deve substituir o membro dwTotalSize .

O provedor de serviços não precisa se preocupar com o tratamento de classes de dispositivo tapi/line e tapi/phone, pois o TAPI manipula essas classes para o provedor de serviços. Portanto, o código para lidar com essas classes de dispositivo é opcional.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho tspi.h

Confira também

Tspi_linegetdevconfig

TSPI_lineSetDevConfig

VARSTRING