Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Vorgang, der asynchron abgeschlossen wird, führt einen Teil seiner Verarbeitung im Funktionsaufruf der Anwendung und den Rest davon in einem unabhängigen Ausführungsthread aus, nachdem TAPI 2.x vom Funktionsaufruf zurückgegeben wurde. Um den Abschluss der Verarbeitung des Aufrufs sicherzustellen, vektoriert der Dienstanbieter die Anforderung auf eine andere aktive Entität im System , z. B. einen LAN-Server, eine Add-In-Hardware, einen Switch oder ein Netzwerk, und kehrt dann zur Anwendung zurück. Zu diesem Zeitpunkt wird entweder ein negatives Fehlerergebnis oder ein positiver Anforderungsbezeichner an die Anwendung zurückgegeben.
Zum Zeitpunkt des asynchronen Abschlusses (der Dienstanbieter hat eine Unterbrechung von der Hardware erhalten, d. h., dass eine Nachricht zugestellt werden muss), ruft der Dienstanbieter TAPISRV auf und meldet, dass "Ereignis X gerade stattgefunden hat. Übermitteln Sie allen betroffenen Anträgen eine entsprechende Botschaft." Wenn TAPISRV diese Nachricht empfängt, leitet sie die Nachricht an die TAPI Dynamic Link Library weiter, im Prozess der Anwendung, die wiederum eine Fensternachricht sendet, signalisiert ein Ereignishandle oder Beiträge an einen E/A-Vervollständigungsport gemäß dem nachrichtenbenachrichtigungsschema, das von der Anwendung in lineInitializeEx oder phoneInitializeExausgewählt wurde.
Wenn der asynchrone Teil des Vorgangs abgeschlossen ist, wird eine LINE_REPLY (oder PHONE_REPLY) Nachricht an die Anwendung gesendet. Diese Nachricht enthält als parameter den vom Funktionsaufruf zurückgegebenen Anforderungsbezeichner. Mit diesem Anforderungsbezeichner kann die Anwendung ermitteln, welche ursprüngliche Anforderung abgeschlossen wurde. (Anwendungen sollten sich die Anforderungsbezeichner aller ihrer laufenden Anforderungen merken, damit Antwortnachrichten ordnungsgemäß verarbeitet werden können.) Ein zweiter Parameter für die LINE_REPLY-Nachricht (oder PHONE_REPLY) ist der asynchrone Rückgabewert. Dies ist entweder ein negativer Wert (für einen Fehler) oder Null, wenn der Vorgang erfolgreich abgeschlossen wurde. Bei asynchronen Vorgängen können alle Rückgabewerte als Teil der Funktionsrückgabe oder als dwParam2- Parameter in der LINE_REPLY- oder PHONE_REPLY-Nachricht zurückgegeben werden. Der Wert 0, der den Erfolg angibt, wird nur in der LINE_REPLY Nachricht zurückgegeben, und niemals als Rückgabewert der Funktion.
Die Initialisierungsfunktionen ( lineInitializeEx und phoneInitializeEx) teilen TAPI mit, wie diese Nachrichten an die Anwendung gesendet werden.
Anmerkung
Wenn eine Multithreadanwendung in einigen Fällen eine asynchrone Funktion aus einem anderen Thread als dem Thread aufruft, von dem die Anwendung das Leitungs- oder Telefongerät initialisiert hat, empfängt die Anwendung möglicherweise die LINE_REPLY oder PHONE_REPLY Nachricht, bevor die asynchrone Funktion zurückgegeben wurde. In solchen Fällen sollte die Anwendung die Nachrichtenparameter speichern und warten, bis die asynchrone Funktion zurückgegeben wird und der Anforderungsbezeichner vor der Verarbeitung der Nachricht bekannt ist.