3.1.3 Asynchronous spontaneous events

There is another class of asynchronous events besides those described above. These events are "spontaneous" in the sense that they are not direct results of corresponding requests. These events are detected when a incoming call arrives, an outbound call goes from a "ringing" to "answering" state, etc. When the TAPI DLL first initializes interactions with the TSPI for a particular device, it passes a pointer to a callback procedure to be called for reporting such spontaneous events. Along with this procedure pointer is an opaque identifier value that the Service Provider includes as one of the actual parameters to the callback. This value is treated as an uninterpreted bit pattern by the Service Provider. The TAPI DLL knows how to use this identifier to find the data structure it uses to represent that specific device.