Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


WDM filter driver

OSR_Community_UserOSR_Community_User Member Posts: 110,217
Dear All,
I am trying to develop a WDM filter driver which is sit between default
Windows 98 audio driver (for USB audio class device) and USBD. For some
reason I just cannot get the filter driver loaded by Windows 98, even the
filter driver (filter.sys) is not copied to \windows\system32\drivers
directory. There must be something wrong in the INF file or maybe something
else. The following is the INF file I wrote, do you have any clue ?
Thanks in advance,
Alfred Lee


;===============================================================
;
; AudioTest.INF -- This file contains installation information
; for the audio device (microphone)
;
;===============================================================

[Version]
CatalogFile=wdma_usb.cat
Signature="$CHICAGO$"
LayoutFile=layout.inf,layout1.inf,layout2.inf
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
provider=%PName%

[Manufacturer]
%AudioTest%=AudioTest

[DestinationDirs]
USBAudio.CopyList=10,system32\drivers
AudioFilter.CopyList=10,system32\drivers

; =================== Device Section =============================
[AudioTest]
%USB\VID_1234&PID_5678&MI_01.DeviceDesc%=USBAudio,USB\VID_1234&PID_5678&MI_01

[USBAudio]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles=USBAudio.CopyList,AudioFilter.CopyList
KnownFiles=USBAudio.KnownFiles
AddReg=USBAudio.AddReg,AudioFilter.AddReg

[USBAudio.NT]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles=USBAudio.CopyList,AudioFilter.CopyList
KnownFiles=USBAudio.KnownFiles
AddReg=USBAudio.AddReg,AudioFilter.AddReg

[USBAudio.NT.HW]
AddReg=AudioFilterHW.AddReg

[USBAudio.CopyList]
USBAUDIO.sys

[AudioFilter.CopyList]
FILTER.sys

[USBAudio.KnownFiles]
usbaudio.sys.4.10.0=safe

[USBAudio.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,USBAUDIO.sys
HKR,,NTMPDriver,,"USBAUDIO.sys,sbemul.sys"
HKR,,CLSID,,{17CCA71B-ECD7-11D0-B908-00A0C9223196}
HKR,Drivers,SubClasses,,"wave,midi,mixer,aux"
HKR,Drivers\wave\wdmaud.drv, Driver,,wdmaud.drv
HKR,Drivers\midi\wdmaud.drv, Driver,,wdmaud.drv
HKR,Drivers\mixer\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\aux\wdmaud.drv,Driver,,wdmaud.drv

[AudioFilter.AddReg]

[AudioFilterHW.AddReg]
HKR,,"UpperFilters",0x00010000,"USBAUDIO.SYS"
HKR,,"LowerFilters",0x00010000,"USBD.SYS"
HKR,,"SampleFilterParam",0x00010001,512

;========================== Interfaces
======================================
[USBAudio.Interfaces]
AddInterface={6994ad04-93ef-11d0-a3cc-00a0c9223196},"GLOBAL",USBAudio.Interface.Curve,

[USBAudio.Interface.Curve]
AddReg=USBAudio.Interface.Addreg.Curve

[USBAudio.Interface.AddReg.Curve]
HKR,,CurveType,1,01,00,00,00

[USBAudio.NT.Interfaces]
AddInterface={6994ad04-93ef-11d0-a3cc-00a0c9223196},"GLOBAL",USBAudio.Interface.Curve,

[USBAudio.NT.Interface.Curve]
AddReg=USBAudio.Interface.Addreg.Curve

[USBAudio.NT.Interface.AddReg.Curve]
HKR,,CurveType,1,01,00,00,00

;========================== Services
========================================
[USBAudio.Services]
AddService=AudioFilterService,0x2,Audio_Filter_Service_Inst

[USBAudio.NT.Services]
AddService=AudioFilterService,0x2,Audio_Filter_Service_Inst

[Audio_Filter_Service_Inst]
DisplayName="Audio Filter Service"
ServiceType=1 ;%SERVICE_KERNEL_DRIVER%
StartType=3 ;%SERVICE_DEMAND_START%
ErrorControl=0 ;%SERVICE_ERROR_IGNORE%
ServiceBinary=%12%\filter.sys
LoadOrderGroup=extended base

;========================== Strings
=========================================
[Strings]

;----------------
; Non-Localizable
;----------------
MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"
Proxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"

;----------------
; Localizable
;----------------
PName="Test"
AudioTest="Test Audio"
USB\VID_1234&PID_5678&MI_01.DeviceDesc="Test Audio"

________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com

Comments

  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    If I'm right, for Windows98, you must add the following section in
    your INF file:

    [USBAudio.HW]
    AddReg=AudioFilterHW.AddReg

    Hope this helps.

    Serge DE LUCA

    > -----Original Message-----
    > From: Yuan Lee [mailto:[email protected]]
    > Sent: Saturday, May 13, 2000 3:48 AM
    > To: NT Developers Interest List
    > Subject: [ntdev] WDM filter driver
    >
    >
    > Dear All,
    > I am trying to develop a WDM filter driver which is sit
    > between default
    > Windows 98 audio driver (for USB audio class device) and
    > USBD. For some
    > reason I just cannot get the filter driver loaded by Windows
    > 98, even the
    > filter driver (filter.sys) is not copied to \windows\system32\drivers
    > directory. There must be something wrong in the INF file or
    > maybe something
    > else. The following is the INF file I wrote, do you have any clue ?
    > Thanks in advance,
    > Alfred Lee
    >
    >
    > ;===============================================================
    > ;
    > ; AudioTest.INF -- This file contains installation information
    > ; for the audio device (microphone)
    > ;
    > ;===============================================================
    >
    > [Version]
    > CatalogFile=wdma_usb.cat
    > Signature="$CHICAGO$"
    > LayoutFile=layout.inf,layout1.inf,layout2.inf
    > Class=MEDIA
    > ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
    > provider=%PName%
    >
    > [Manufacturer]
    > %AudioTest%=AudioTest
    >
    > [DestinationDirs]
    > USBAudio.CopyList=10,system32\drivers
    > AudioFilter.CopyList=10,system32\drivers
    >
    > ; =================== Device Section =============================
    > [AudioTest]
    > %USB\VID_1234&PID_5678&MI_01.DeviceDesc%=USBAudio,USB\VID_1234
    > &PID_5678&MI_01
    >
    > [USBAudio]
    > Include=ks.inf,wdmaudio.inf
    > Needs=KS.Registration,WDMAUDIO.Registration
    > CopyFiles=USBAudio.CopyList,AudioFilter.CopyList
    > KnownFiles=USBAudio.KnownFiles
    > AddReg=USBAudio.AddReg,AudioFilter.AddReg
    >
    > [USBAudio.NT]
    > Include=ks.inf,wdmaudio.inf
    > Needs=KS.Registration,WDMAUDIO.Registration
    > CopyFiles=USBAudio.CopyList,AudioFilter.CopyList
    > KnownFiles=USBAudio.KnownFiles
    > AddReg=USBAudio.AddReg,AudioFilter.AddReg
    >
    > [USBAudio.NT.HW]
    > AddReg=AudioFilterHW.AddReg
    >
    > [USBAudio.CopyList]
    > USBAUDIO.sys
    >
    > [AudioFilter.CopyList]
    > FILTER.sys
    >
    > [USBAudio.KnownFiles]
    > usbaudio.sys.4.10.0=safe
    >
    > [USBAudio.AddReg]
    > HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
    > HKR,,Driver,,USBAUDIO.sys
    > HKR,,NTMPDriver,,"USBAUDIO.sys,sbemul.sys"
    > HKR,,CLSID,,{17CCA71B-ECD7-11D0-B908-00A0C9223196}
    > HKR,Drivers,SubClasses,,"wave,midi,mixer,aux"
    > HKR,Drivers\wave\wdmaud.drv, Driver,,wdmaud.drv
    > HKR,Drivers\midi\wdmaud.drv, Driver,,wdmaud.drv
    > HKR,Drivers\mixer\wdmaud.drv,Driver,,wdmaud.drv
    > HKR,Drivers\aux\wdmaud.drv,Driver,,wdmaud.drv
    >
    > [AudioFilter.AddReg]
    >
    > [AudioFilterHW.AddReg]
    > HKR,,"UpperFilters",0x00010000,"USBAUDIO.SYS"
    > HKR,,"LowerFilters",0x00010000,"USBD.SYS"
    > HKR,,"SampleFilterParam",0x00010001,512
    >
    > ;========================== Interfaces
    > ======================================
    > [USBAudio.Interfaces]
    > AddInterface={6994ad04-93ef-11d0-a3cc-00a0c9223196},"GLOBAL",U
    > SBAudio.Interface.Curve,
    >
    > [USBAudio.Interface.Curve]
    > AddReg=USBAudio.Interface.Addreg.Curve
    >
    > [USBAudio.Interface.AddReg.Curve]
    > HKR,,CurveType,1,01,00,00,00
    >
    > [USBAudio.NT.Interfaces]
    > AddInterface={6994ad04-93ef-11d0-a3cc-00a0c9223196},"GLOBAL",U
    > SBAudio.Interface.Curve,
    >
    > [USBAudio.NT.Interface.Curve]
    > AddReg=USBAudio.Interface.Addreg.Curve
    >
    > [USBAudio.NT.Interface.AddReg.Curve]
    > HKR,,CurveType,1,01,00,00,00
    >
    > ;========================== Services
    > ========================================
    > [USBAudio.Services]
    > AddService=AudioFilterService,0x2,Audio_Filter_Service_Inst
    >
    > [USBAudio.NT.Services]
    > AddService=AudioFilterService,0x2,Audio_Filter_Service_Inst
    >
    > [Audio_Filter_Service_Inst]
    > DisplayName="Audio Filter Service"
    > ServiceType=1 ;%SERVICE_KERNEL_DRIVER%
    > StartType=3 ;%SERVICE_DEMAND_START%
    > ErrorControl=0 ;%SERVICE_ERROR_IGNORE%
    > ServiceBinary=%12%\filter.sys
    > LoadOrderGroup=extended base
    >
    > ;========================== Strings
    > =========================================
    > [Strings]
    >
    > ;----------------
    > ; Non-Localizable
    > ;----------------
    > MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"
    > Proxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
    >
    > ;----------------
    > ; Localizable
    > ;----------------
    > PName="Test"
    > AudioTest="Test Audio"
    > USB\VID_1234&PID_5678&MI_01.DeviceDesc="Test Audio"
    >
    > ______________________________________________________________
    > __________
    > Get Your Private, Free E-mail from MSN Hotmail at
    http://www.hotmail.com


    ---
    You are currently subscribed to ntdev as: [email protected]
    To unsubscribe send a blank email to $subst('Email.Unsub')
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Kernel Debugging 13-17 May 2024 Live, Online
Developing Minifilters 1-5 Apr 2024 Live, Online
Internals & Software Drivers 11-15 Mar 2024 Live, Online
Writing WDF Drivers 20-24 May 2024 Live, Online