Hi, Tim , Thanks for your reply.
I compare the pictures in the “Introduction to Port Class” both in the WDK 7600, and DDK 2600, The kmix.sys does disppeared in the newer windows . I also googled and find the Microsoft has make some effort to reduce the delay, I guess this might be the issue.
Let’s just talk about the “Older windows systems”.
The biggest matter I want to know is: If the ?chief criminal? that cause the delay of audio is the “kmix.sys” in the “Older systems” , and the ASIO’s main purpose is make the stream to “BYPASS” the kmixer.sys ?
I also find a statement that says by compared to the DirectSound, if the DirectSound is a formed by C++ language , the ASIO may be formed by assembly language. So ,the ASIO is more “dircetly” to the hardeware ?? I thind this should be the explains of you , the DirectSound uses the wrapper filter “ksproxy.ax” , and these is a layer over the hardware?? not dircetly.
So, how about the ASIO? How does it communicate to the hardware? It use “kernel streaming API”, that does clearly, well, how these “kernel streaming API” commnicate to the hardware? I thinks these API must reside in the "usbaudio.sys " (the stream class driver ) or in the “USBD.sys”(the bus class driver ) , this can be seem from the picture I mentioned above , then , which layer?
I puzzle to the functions in the Streaming part of the DDK , I puzzled if it is a kernel functions or can be called from user mode ,can you give a example of the “kernel streaming API” ?