Hi, over the time, I got more and more insight in KS, but worryingly, things didn't become clearer but more confusing. It would be great if somebody could give a short explanation to the questions I have. If I'm correct, PortCL is just a "sub-framework" to make driver construction easier, by reducing the amount of ks code that needs to be written. However does this mean that I am also restricted in KS functionality by using portCL? For example, I read on MSDN that usually Pins are instantiated using createFile and interfaces with using DeviceIoControl, however I don't see how to properly implement a custom pin with a generic datarange in a portcl minidriver (its even worse documented in the MSDN than MIDI). Then there is the question: what do I need nodes and connections for? It would make perfectly sense, if the data was passed along the connections and each node hat a data processing function, but the only reason sample driver seem to have nodes for are to handle Property Requests. Data isn't passed through the filter, its passed to a stream that is connected to the pin which either stores it internally or in the Miniport. What happens there is completely up to the miniport. It may well be that I'm talking nonsense here but that's how I currently perceive Kernel Streaming. Regards, Max