TSPI_lineGetID 函数 (tspi.h)

TSPI_lineGetID函数返回与所选线路、地址或呼叫关联的指定设备类的设备标识符。

语法

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

参数

hdLine

要查询的行的服务提供商句柄。

dwAddressID

给定开行设备上的地址。 地址标识符与地址永久关联;标识符在操作系统升级中保持不变。 调用此函数时,TAPI 不会验证此参数。

hdCall

要查询的调用的服务提供商句柄。

dwSelect

指定请求的设备标识符是与线路、地址还是单个呼叫相关联。 dwSelect 参数只能有一个LINECALLSELECT_常量

lpDeviceID

指向 类型 VARSTRING 的内存位置的指针,其中返回了设备标识符。 成功完成请求后,此位置将填充设备标识符。 返回信息的格式取决于设备类 (API) 用于命名设备的方法。

lpszDeviceClass

指向以 null 结尾的 Unicode 字符串的指针,该字符串指定请求其标识符的设备的设备类。 有效的设备类字符串是在 System.ini 部分中用于标识设备类 (,如 COM、Wave 和 MCI.)

hTargetProcess

代表调用 TSPI_lineGetID 函数的应用程序的进程句柄。 如果 VARSTRING 结构中返回的信息包含供应用程序使用的句柄,则服务提供商应创建或复制进程的句柄。

如果 hTargetProcess 设置为 INVALID_HANDLE_VALUE,则应用程序正在远程客户端系统上执行,并且无法直接创建重复句柄。 相反, VARSTRING 结构应包含网络设备的 UNC 名称或远程客户端可用于访问设备的其他名称。 如果这不可行,则该函数应会失败。

返回值

如果函数成功,则返回零;如果发生错误,则返回错误号。 可能的返回值如下所示:

LINEERR_INVALLINEHANDLE、LINEERR_NOMEM、LINEERR_INVALADDRESSID、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALCALLHANDLE、LINEERR_OPERATIONFAILED、LINEERR_NODEVICE、LINEERR_RESOURCEUNAVAIL。

注解

如果 dwSelect LINECALLSELECT_LINE或LINECALLSELECT_ADDRESS,并且 hdLine 无效,则服务提供将返回LINEERR_INVALLINEHANDLE。

如果 dwSelect LINECALLSELECT_CALL且 hdCall 无效,则服务提供程序返回LINEERR_INVALCALLHANDLE。

服务提供商应支持 tapi/line 设备类,以允许应用程序确定打开的线路的实际线路设备标识符。 在这种情况下,返回的变量数据是 dwDeviceID。 有关常见设备类名称的详细信息,请参阅 TSPI 设备类

定义特定于设备的媒体类型的供应商还需要定义相应的特定于设备的 (专有) API 来管理媒体类型的设备。 为了避免不同供应商独立分配的设备类名称发生冲突,供应商应选择唯一标识供应商的名称,然后选择媒体类型;例如:“intel/video”。

服务提供商将填充 VARSTRING 数据结构的所有成员, dwTotalSize 除外,后者由 TAPI 填充。 服务提供程序不得覆盖 dwTotalSize 成员。

服务提供商无需考虑处理 tapi/line 和 tapi/phone 设备类,因为 TAPI 为服务提供商处理这些类。 因此,用于处理这些设备类的代码是可选的。

要求

要求
目标平台 Windows
标头 tspi.h

另请参阅

TSPI_lineGetDevConfig

TSPI_lineSetDevConfig

VARSTRING