CoNDIS TAPI-Initialisierung
In diesem Abschnitt wird erläutert, wie ein CoNDIS WAN-Miniporttreiber seine TAPI-Funktionen für Anwendungen aufzählt. Diese TAPI-Funktionen bestehen aus:
Die Anzahl der vom Miniporttreiber unterstützten Leitungsgeräte umfasst z. B. ein Modem, ein Faxboard und eine ISDN-Karte.
Informationen für bestimmte Zeilen - Zeileninformationen umfassen z. B. einen Zeilenbezeichner und die Anzahl der Kanaladressen (Telefonnummern), die die Leitung für die gleichzeitige Übertragung von Sprache und Daten unterstützt.
Informationen für bestimmte Kanaladressen auf Gerätezeilen– Adressinformationen umfassen beispielsweise die Identität eines Anrufers (Anrufer-ID) und die Anzahl der möglichen aktiven Anrufe.
Um Informationen zur zugrunde liegenden Hardware abzurufen, stellt NDPROXY Anforderungen für Zeilen- und Kanaladressenfunktionen aus. Das heißt, der NDPROXY-Treiber fragt die TAPI-Funktionen eines CoNDIS WAN-Miniporttreibers ab. Der NDPROXY-Treiber ruft die NdisCoOidRequest-Funktion auf, um die TAPI-Funktionen des Miniporttreibers abzufragen. In diesem Aufruf übergibt NDPROXY eine NDIS_OID_REQUEST-Struktur. NDPROXY gibt Folgendes in NDIS_OID_REQUEST an:
NdisRequestQueryInformation-Wert im RequestType-Member
Objektbezeichner (Object Identifier, OID), der die TAPI-Funktion angibt, die vom Miniporttreiber im Oid-Member abgerufen werden soll
Puffer, um die IM InformationBuffer-Member zurückgegebenen TAPI-Funktioneninformationen zu enthalten
Alle Abfragen, die vom NDPROXY-Treiber an einen CoNDIS WAN-Miniporttreiber gesendet werden, können synchron oder asynchron abgeschlossen werden. Wenn ein CoNDIS WAN-Miniporttreiber feststellt, dass er die Abfrage nicht sofort abschließen kann, kann er einfach NDIS_STATUS_PENDING zurückgeben und die NdisMCmOidRequestComplete-Funktion innerhalb seiner ProtocolCoOidRequest-Funktion aufrufen, wenn die Abfrage abgeschlossen ist.
Nachdem ein CoNDIS WAN-Miniporttreiber NDPROXY über die Registrierung einer neuen Adressfamilie benachrichtigt hat, wie in CoNDIS TAPI Registration angegeben, fragt NDPROXY die folgenden OIDs ab, um die TAPI-spezifischen Funktionen des CoNDIS WAN-Miniporttreibers und der NIC des Miniporttreibers zu ermitteln.
NDPROXY fragt den Miniporttreiber mit OID_CO_TAPI_CM_CAPS ab, um die Anzahl der vom Gerät des Miniporttreibers unterstützten Zeilen (das Gerät, für das TAPI-Dienste bereitgestellt werden) zu bestimmen. Diese OID fordert auch den Miniporttreiber an, um anzugeben, ob diese Linien ungleiche Linienfunktionen aufweisen.
NDPROXY fragt als Nächstes den Miniporttreiber mit OID_CO_TAPI_LINE_CAPS ab, um die Telefoniefunktionen für die angegebene Leitung zu ermitteln. Diese OID fordert auch den Miniporttreiber an, um anzugeben, ob Adressen in dieser Zeile ungleiche Adressfunktionen aufweisen.
- Wenn die vorherige Abfrage von OID_CO_TAPI_CM_CAPS angegeben hat, dass das Gerät des Miniporttreibers nur eine Zeile unterstützt, oder wenn das Gerät mehrere Zeilen mit den gleichen Zeilenfunktionen unterstützt, muss NDPROXY OID_CO_TAPI_LINE_CAPS nur einmal abfragen, um die Zeilenfunktionen des Geräts abzurufen. In diesem Fall gelten die vom Miniporttreiber zurückgegebenen Zeilenfunktionen für alle Leitungen auf dem Gerät.
- Wenn das Gerät mehrere Zeilen mit unterschiedlichen Zeilenfunktionen unterstützt, muss NDPROXY für jede Zeile OID_CO_TAPI_LINE_CAPS einmal abfragen, um die Zeilenfunktionen jeder Zeile abzurufen.
Schließlich fragt NDPROXY den Miniporttreiber mit OID_CO_TAPI_ADDRESS_CAPS ab, um die Telefoniefunktionen für eine angegebene Adresse in einer angegebenen Zeile zu ermitteln.
- Wenn die vorherige Abfrage von OID_CO_TAPI_LINE_CAPS darauf hingewiesen hat, dass die Zeile nur eine Adresse unterstützt oder dass alle Adressen in der Zeile die gleichen Adressfunktionen haben, fragt NDPROXY OID_CO_TAPI_ADDRESS_CAPS nur einmal ab, um die Funktionen aller Adressen in der Zeile zu bestimmen.
- Wenn eine Zeile mehrere Adressen mit unterschiedlichen Funktionen unterstützt, fragt NDPROXY OID_CO_TAPI_ADDRESS_CAPS einmal für jede Adresse in der Zeile ab.
Der NDPROXY-Treiber verwendet die mit den TAPI-Enumerations-OIDs abgerufenen Informationen, um Folgendes auszuführen:
Erstellen Sie TAPI-Parameter für nachfolgende TAPI-Aufrufe.
Bestimmen Sie, ob nachfolgende eingehende TAPI-Aufrufe akzeptiert oder abgelehnt werden sollen.
Registrieren Sie mindestens einen TAPI-Dienstzugriffspunkt (SERVICE Access Points, SAPs), auf dem nachfolgende eingehende TAPI-Aufrufe empfangen werden sollen.