Don, The comments are not always up to date in the MS examples. The enum defines which pin is which, regardless of what the picture shows. In all cases, the code reflects the actual state of the driver, not the comments. :) If your driver loads, use can use grapher (ksstudio.exe) tools\avstream\x86 to view the topology of your driver. In general, Study the data structures, macros and functions from the driver in the DDK doc, and take a look at the macros in the DDK header files. Another example driver that builds a topology is the AC97 sample driver. Good luck, Paul -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Don Bell Sent: Monday, April 23, 2007 10:24 PM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: KSPIN_TOPO_XXX numbering question Hmmm... no answer means: (1) I did not ask the question properly? (2) Everybody is on vacation? (3) No one knows the answer? (I doubt it) (4) All of the above? If (1) could you please give me a hint how I can solve the mystery described in the original question? Thanks, Don On 4/18/07, Don Bell <0dbell@xxxxxxxxx> wrote: > I am trying to understand the numbering (indexing) scheme of topology > pins and I was looking at the MSVAD Simple sample to try to correlate > this with what I understood (or didn't understand) so far. > > In mintopo.cpp there is an ASCII diagram that describes the topology > for the Simple driver: > > (you need to view this in monospaced font) > > /********************************************************************* > * Topology/Wave bridge connection * > * * > * +------+ +------+ * > * | Wave | | Topo | * > * | | | | * > * Capture <---|0 1|<===|4 1|<--- Synth * > * | | | | * > * Render --->|2 3|===>|0 | * > * +------+ | | * > * | 2|<--- Mic * > * | | * > * | 3|---> Line Out * > * +------+ * > *********************************************************************/ > > In case the above couldn't display properly I will summarize here the > pin numbers according to the diagram (notice, the start from 0): > > 0. Capture > 1. Render > 2. Synth > 3. Mic > 4. Line Out > > However, in simple.h the topology pin seem to be numbered differently: > > // topology pins. > enum > { > KSPIN_TOPO_WAVEOUT_SOURCE = 0, > KSPIN_TOPO_SYNTHOUT_SOURCE, > KSPIN_TOPO_SYNTHIN_SOURCE, > KSPIN_TOPO_MIC_SOURCE, > KSPIN_TOPO_LINEOUT_DEST, > KSPIN_TOPO_WAVEIN_DEST > }; > > Not only they are numbered differently, there are 6 pins vs. only 5 in > the diagram. > > What is the source of the discrepancy here? What am I missing? > > Is it possible that the above enum is not really being used in the > Simple sample? > If so, how come KSPIN_TOPO_SYNTHOUT_SOURCE, for example, is being used > in PCCONNECTION_DESCRIPTOR MiniportConnections[] in toptable.h? > > Thanks for any tip that could clarify my confusion. > > Don > ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/ ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/