Newbie questions re. writing an ACM driver for WinXP

Hello NTDev list,

I’ve been asked to develop an Audiop Compression Manager (ACM) software
codec for Win XP. My client has developed an audio compression algorithm,
which he has made available to me in the form of a DLL, and he wants me to
develop an ACM codec/driver such that it will appear under the Control Panel
“Sounds and Audio Devices” Hardware Tab Codecs section and be usable by
ACM-compliant hosts.

My client has already had a go at doing this and has developed a .acm driver
file which he has made available to me, along with source. Apparently it’s
“80% OK” and needs cleaning up. I’m sure the reality is that I will
re-write it from scratch. Here are a few questions, the answers to which
would really help me get off the ground:

1 Installing the existing ACM driver
I have a .acm driver file which was developed under Win98 which I’d like to
see in action on my WinXP machine. How can I quickly install this under
WinXP? I suspect running a .inf file should do it - if my driver file is
called “mydriver.acm”, what minimal entries do I need in the .inf to get it
to show up in the control panel?

2 Which DDK to use?
I have ordered my DDK from Microsoft - wouldn’t you know it’s on back order.
Given that my current target is WinXP, and having read around the subject
from the Microsoft site, I ordered the Windows 2003 Server DDK. I guess
this DDK is backward-compatible with XP, 200 etc… Am I missing something or
is this the one to go with?

3 Existing Source
I have the source to the existing driver - it’s a VC++6 project, which I can
play around with until I get the latest DDK. When I compile I see I’m
missing “msacmdrv.h”, “mmddk.h”, and “msacm.h”. I have found various web
locations with links to these, but they’re hard to trust - can anyone point
to reliable links?

Excuse the newbie questions; thanks, looking forward to nitty-gritty in the
future,
Culann.

Hi, Culann.

I’ve not written an ACM driver, but have written several audio drivers. But
I think I can give you some pointers.

The Windows Server 2003 DDK is what you want to use. It also covers Windows
2000 and Windows XP, and includes all the tools you’ll need (build program,
makefiles, compiler, linker, libraries, etc.). The include files you’re
missing look like they’re from the DDK. When you get the DDK, you should
have everything you need to build the driver.

DO NOT use the VC++ 6 compiler to build the driver. Use the compiler that
comes in the DDK. You CAN use the Visual Studio IDE, however. Take a look
at:
http://www.osronline.com/article.cfm?article=104
and
http://www.osronline.com/article.cfm?article=43
for information on how to do this using the “ddkbuild.bat” script to do
proper DDK builds from within the Visual Studio IDE.

There are a few ACM examples in the DDK that you can use as a guide (gsm610
comes to mind). The examples include complete source code, a “sources” file
(DDK version of “makefile”), and an .INF file to install the driver. Take a
look at these examples and you should be able to figure out what you need to
do.

Good luck!

-Dan

----- Original Message -----

Subject: Newbie questions re. writing an ACM driver for WinXP
From: Culann mac Cabe
> Date: Mon, 15 Nov 2004 11:17:31 +0000
>
> Hello NTDev list,
>
> I’ve been asked to develop an Audiop Compression Manager (ACM) software
> codec for Win XP. My client has developed an audio compression algorithm,
> which he has made available to me in the form of a DLL, and he wants me to
> develop an ACM codec/driver such that it will appear under the Control
Panel
> “Sounds and Audio Devices” Hardware Tab Codecs section and be usable by
> ACM-compliant hosts.
>
> My client has already had a go at doing this and has developed a .acm
driver
> file which he has made available to me, along with source. Apparently
it’s
> “80% OK” and needs cleaning up. I’m sure the reality is that I will
> re-write it from scratch. Here are a few questions, the answers to which
> would really help me get off the ground:
>
> 1 Installing the existing ACM driver
> I have a .acm driver file which was developed under Win98 which I’d like
to
> see in action on my WinXP machine. How can I quickly install this under
> WinXP? I suspect running a .inf file should do it - if my driver file is
> called “mydriver.acm”, what minimal entries do I need in the .inf to get
it
> to show up in the control panel?
>
> 2 Which DDK to use?
> I have ordered my DDK from Microsoft - wouldn’t you know it’s on back
order.
> Given that my current target is WinXP, and having read around the subject
> from the Microsoft site, I ordered the Windows 2003 Server DDK. I guess
> this DDK is backward-compatible with XP, 200 etc… Am I missing something
or
> is this the one to go with?
>
> 3 Existing Source
> I have the source to the existing driver - it’s a VC++6 project, which I
can
> play around with until I get the latest DDK. When I compile I see I’m
> missing “msacmdrv.h”, “mmddk.h”, and “msacm.h”. I have found various web
> locations with links to these, but they’re hard to trust - can anyone
point
> to reliable links?
>
> Excuse the newbie questions; thanks, looking forward to nitty-gritty in
the
> future,
> Culann.