Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een bewerking die asynchroon wordt voltooid, voert een deel van de verwerking uit in de functieaanroep die door de toepassing is gemaakt en de rest ervan in een onafhankelijke uitvoeringsthread nadat TAPI 2.x is geretourneerd uit de functieaanroep. Om ervoor te zorgen dat de aanroep wordt verwerkt, vectoreert de serviceprovider de aanvraag naar een andere actieve entiteit in het systeem, zoals een LAN-server, invoegtoepassingshardware, een switch of een netwerk, en keert vervolgens terug naar de toepassing. Op dit moment wordt een negatief foutresultaat of een positieve aanvraag-id geretourneerd naar de toepassing.
Op het moment van asynchrone voltooiing (de serviceprovider heeft een onderbreking van de hardware ontvangen, wat betekent dat een bericht moet worden bezorgd), roept de serviceprovider TAPISRV aan en meldt dat 'Gebeurtenis X- zojuist heeft plaatsgevonden. Bezorg een geschikt bericht aan alle betrokken toepassingen." Wanneer TAPISRV dit bericht ontvangt, wordt het bericht doorgestuurd naar de TAPI dynamic-link-bibliotheek, in het proces van de toepassing, dat op zijn beurt een vensterbericht plaatst, een gebeurtenisgreep of berichten naar een I/O-voltooiingspoort stuurt, volgens het berichtmeldingsschema dat is geselecteerd door de toepassing in lineInitializeEx of phoneInitializeEx.
Wanneer het asynchrone gedeelte van de bewerking is voltooid, wordt er een LINE_REPLY (of PHONE_REPLY) bericht naar de toepassing verzonden. Dit bericht bevat, als een van de parameters, de aanvraag-id die wordt geretourneerd door de functie-aanroep. Met deze aanvraag-id kan de toepassing bepalen welke oorspronkelijke aanvraag is voltooid. (Toepassingen moeten de aanvraag-id's onthouden van alle aanvragen die worden uitgevoerd, zodat antwoordberichten correct kunnen worden verwerkt.) Een tweede parameter voor het bericht LINE_REPLY (of PHONE_REPLY) is de asynchrone retourwaarde. Dit is een negatieve waarde (voor een fout) of nul als de bewerking is voltooid. Voor asynchrone bewerkingen kan een van de retourwaarden worden geretourneerd als onderdeel van de functie die wordt geretourneerd of als de parameter dwParam2 in het LINE_REPLY- of PHONE_REPLY-bericht. De waarde 0, die aangeeft dat het is gelukt, wordt alleen geretourneerd in het LINE_REPLY bericht en nooit als de retourwaarde van de functie.
De initialisatiefuncties (lineInitializeEx en phoneInitializeEx) vertellen TAPI hoe deze berichten naar de toepassing moeten worden verzonden.
Notitie
Als een multithreaded-toepassing in sommige gevallen een asynchrone functie aanroept van een andere thread dan de thread van waaruit de toepassing de lijn of het telefoonapparaat heeft geïnitialiseerd, kan de toepassing het bericht LINE_REPLY of PHONE_REPLY ontvangen voordat de asynchrone functie is geretourneerd. In dergelijke gevallen moet de toepassing de berichtparameters opslaan en wachten totdat de asynchrone functie wordt geretourneerd en de aanvraag-id bekend is voordat het bericht wordt verwerkt.