TSPI_lineGetID-Funktion (tspi.h)

Die TSPI_lineGetID-Funktion gibt einen Gerätebezeichner für die angegebene Geräteklasse zurück, die der ausgewählten Zeile, Adresse oder dem ausgewählten Aufruf zugeordnet ist.

Syntax

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

Parameter

hdLine

Das Handle des Dienstanbieters für die abzufragte Zeile.

dwAddressID

Eine Adresse auf dem angegebenen Open Line-Gerät. Ein Adressbezeichner ist einer Adresse dauerhaft zugeordnet. Der Bezeichner bleibt über Betriebssystemupgrades hinweg konstant. TAPI überprüft diesen Parameter nicht, wenn diese Funktion aufgerufen wird.

hdCall

Das Handle des Dienstanbieters für den abzufragten Aufruf.

dwSelect

Gibt an, ob der angeforderte Gerätebezeichner der Zeile, Der Adresse oder einem einzelnen Aufruf zugeordnet ist. Der dwSelect-Parameter kann nur eine der LINECALLSELECT_ Konstanten aufweisen.

lpDeviceID

Ein Zeiger auf den Speicherspeicherort des Typs VARSTRING , an dem der Gerätebezeichner zurückgegeben wird. Nach erfolgreichem Abschluss der Anforderung wird dieser Speicherort mit dem Gerätebezeichner gefüllt. Das Format der zurückgegebenen Informationen hängt von der Methode ab, die von der Geräteklasse (API) zum Benennen von Geräten verwendet wird.

lpszDeviceClass

Ein Zeiger auf eine Unicode-Zeichenfolge mit Null-Beendigung, die die Geräteklasse des Geräts angibt, dessen Bezeichner angefordert wird. Gültige Geräteklassenzeichenfolgen werden im Abschnitt System.ini zum Identifizieren von Geräteklassen (z. B. COM, Wave und MCI) verwendet.

hTargetProcess

Das Prozesshandle der Anwendung, für die die TSPI_lineGetID-Funktion aufgerufen wird. Wenn die in der VARSTRING-Struktur zurückgegebenen Informationen ein Handle zur Verwendung durch die Anwendung enthalten, sollte der Dienstanbieter das Handle für den Prozess erstellen oder duplizieren.

Wenn hTargetProcess auf INVALID_HANDLE_VALUE festgelegt ist, wird die Anwendung auf einem Remoteclientsystem ausgeführt, und es ist nicht möglich, direkt ein doppeltes Handle zu erstellen. Stattdessen sollte die VARSTRING-Struktur einen UNC-Namen eines Netzwerkgeräts oder einen anderen Namen enthalten, den der Remoteclient für den Zugriff auf das Gerät verwenden kann. Wenn dies nicht möglich ist, sollte die Funktion fehlschlagen.

Rückgabewert

Gibt null zurück, wenn die Funktion erfolgreich ist, oder eine Fehlernummer, wenn ein Fehler auftritt. Mögliche Rückgabewerte sind wie folgt:

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

Hinweise

Der Dienst provide gibt LINEERR_INVALLINEHANDLE zurück, wenn dwSelect LINECALLSELECT_LINE oder LINECALLSELECT_ADDRESS ist und hdLine ungültig ist.

Der Dienstanbieter gibt LINEERR_INVALCALLHANDLE zurück, wenn dwSelect LINECALLSELECT_CALL und hdCall ungültig ist.

Der Dienstanbieter sollte die tapi/line-Geräteklasse unterstützen, damit Anwendungen den tatsächlichen Zeilengerätebezeichner einer geöffneten Linie bestimmen können. In diesem Fall sind die zurückgegebenen Variablendaten die dwDeviceID. Weitere Informationen zu gängigen Geräteklassennamen finden Sie unter TSPI-Geräteklassen.

Ein Anbieter, der einen gerätespezifischen Medientyp definiert, muss auch die entsprechende gerätespezifische (proprietäre) API definieren, um Geräte des Medientyps zu verwalten. Um Kollisionen bei Geräteklassennamen zu vermeiden, die unabhängig von verschiedenen Anbietern zugewiesen werden, sollte ein Anbieter einen Namen auswählen, der den Anbieter und dann den Medientyp eindeutig identifiziert. Beispiel: "intel/video".

Der Dienstanbieter füllt alle Member der VARSTRING-Datenstruktur aus, mit Ausnahme von dwTotalSize, das von TAPI ausgefüllt wird. Der Dienstanbieter darf den dwTotalSize-Member nicht überschreiben.

Der Dienstanbieter muss sich nicht um die Verarbeitung der Geräteklassen tapi/line und tapi/phone kümmern, da TAPI diese für den Dienstanbieter verarbeitet. Daher ist Code für die Verarbeitung dieser Geräteklassen optional.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile tspi.h

Weitere Informationen

TSPI_lineGetDevConfig

TSPI_lineSetDevConfig

VARSTRING