KS Interfaces
An Interface is a descriptor parameter that defines how a pin communicates. The minidriver indicates which interfaces a pin supports by providing a pointer to an array of KSPIN_INTERFACE structures in the relevant KSPIN_DESCRIPTOR structure. KS then uses this information for determining potential connectivity and graph building.
Like mediums, interfaces are also described as a set and as an element of that set. The KSPIN_INTERFACE structure defines a specific interface within an interface set.
The user-mode client then specifies the type of interface for a connection by using the Interface member of the relevant KSPIN_CONNECT structure. The client passes this KSPIN_CONNECT instance in a call to KsCreatePin, which results in an IRP_MJ_CREATE being sent to the minidriver.