Line Devices, Addresses, and Calls (NDIS 5.1)
Note NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.
This topic introduces the concepts of line devices, addresses and calls as they apply to the implementation of NDIS WAN drivers.
A TAPI-capable NDIS WAN miniport driver models lines, addresses, and calls. A line device is an abstraction of a physical device having one or more communications channels (used for signaling and/or information). Modeling of the line devices is left to the discretion of the WAN miniport driver developer. For example, consider a BRI-ISDN line with two 64K "B" channels. An NDIS WAN miniport driver could choose to model this as any one of the following:
One line device with two channels
Two line devices, each with its own channel
Two line devices that each support one or two channels, selecting from a common pool
Two single-channel line devices and one two-channel line device
In the latter two models, channels can be assigned to different line devices at different times.
Each line device is assigned one or more addresses. An Addresscorresponds to a telephone directory number. An address ID is a number between zero and the number of addresses on the line minus one.
From the TAPI client's point of view, the number of line devices and the number of corresponding addresses remains constant between the time the client calls lineInitialize (to initialize a TAPI client session) and the time it calls lineShutdown (to end a TAPI client session). However, the status of line devices and addresses will commonly change over the life of the client's telephony session. For example, a line device might be taken out of service for some reason, and become available later. Several requests and notification messages are available to allow client applications to track line and address status and capabilities.
A call represents a connection between two or more addresses. Unlike line devices and addresses, calls are dynamic in that they can be created and destroyed. As with lines and addresses, there are both requests and notification messages defined to allow client applications to follow call state and information changes.