IServiceSink interface

The IServiceSink interface encapsulates handling of a service request. The source of the service request is typically the miniport driver's interrupt service routine. PortCls supports the IServiceSink interface. An IServiceSink object is typically a member of a service group that is managed by an IServiceGroup object. IServiceSink inherits from the IUnknown interface.

IServiceSink is the base interface for IServiceGroup. This allows an IServiceGroup object to add itself (as an object with an IServiceSink interface) to another IServiceGroup object's service group.

Although the PortCls system driver provides a PcNewServiceGroup function for creating a service group object, no similar function exists for creating a service sink object. Instead, a driver object that requires a service sink simply implements an IServiceSink interface in the driver object. For convenience, header file portcls.h includes an IMP_IServiceSink constant for adding the IServiceSink implementation to the object's class definition. The cost of adding an IServiceSink interface to an object is small because the interface supports only a single method. A port driver typically adds an IServiceSink interface to its port object and stream objects so that they can receive notification of interrupts from an audio device.

For more information, see Service Sink and Service Group Objects.


The IServiceSink interface inherits from the IUnknown interface. IServiceSink also has these types of members:


The IServiceSink interface has these methods.

Method Description
IServiceSink::RequestService The RequestService method is called to forward a service request to an IServiceSink object.


Target Platform Windows
Header portcls.h