Hi all,
What I mean is:
When I try to update my APO driver using “Update Driver…” in the Audio Device Properties tab page or first “Roll Back Driver” and then “Update Driver…” the updated driver is never replacing the previous driver. The first driver I install works but I can’t update it. My current solution is to revert back to a snapshot in VM but that is not very convenient. I’m hoping that there is an easier way.
I’m running win7 in a VM.
Best,
Stig Wiekert
xxxxx@gmail.com wrote:
When I try to update my APO driver using “Update Driver…” in the Audio Device Properties tab page or first “Roll Back Driver” and then “Update Driver…” the updated driver is never replacing the previous driver. The first driver I install works but I can’t update it. My current solution is to revert back to a snapshot in VM but that is not very convenient. I’m hoping that there is an easier way.
Not really. Depending on the type of APO, your DLL gets loaded into the
Windows Audio Service. You can’t replace the DLL while it is loaded
into a process. Matthew has given me instructions several times on this
telling me how to stop the service so I can replace the DLL, then
restart the service.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Ahh, that sounds very plausible. I’ll try it first thing tomorrow. Do you use one of the suggestions mentioned here?
http://superuser.com/questions/521955/is-there-a-way-to-restart-audio-without-restarting-a-windows-7-computer
There it is also suggested to run
net stop AudioEndpointBuilder
Thanks for your feedback. I hope it will work!
Hi Tim,
If you have a procedure for updating an APO is it possible you can provide step by step guide?
I have tried to stop audiosrv and AudioEndpointBuilder services before running updating driver but that does not work. It is still the old SwapAPO.dll that is effective.
However, if I rename SwapAPO.dll and the gui dll, update the .inf file accordingly and then update driver it works. So that supports your explanation that the dll’s are loaded by some process. But it doesn’t help to stop audiosrv and AudioEndpointBuilder before updating the driver. I noticed that when updating the driver the system automatically starts the audio service…
I found a different way to update the driver but that requires a restart before the updated driver is effective. I can overwrite SwapAPO.dll in /driverstore/FileRepository before updating the driver using .inf file. Then the system displays messagebox which says that a restart is required. Indeed if I restart the updated driver is effective.
I’m still hoping that there is a way to update an APO driver that does not require a reboot or revert back to snapshop. Is it possible?
xxxxx@gmail.com wrote:
If you have a procedure for updating an APO is it possible you can provide step by step guide?
I have tried to stop audiosrv and AudioEndpointBuilder services before running updating driver but that does not work. It is still the old SwapAPO.dll that is effective.
That’s the sequence provided by Matthew:
net stop audiosrv
do your replacement
net start audiosrv
In “do your replacement”, I’m just copying the new DLL into place, not
doing a complete re-install. Usually, the INF doesn’t change very much.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Hi Tim,
Those steps does not work in my setup. Does it work for you?
Can you provide more detail on “do your replacement”?
I have tried to replace the APO dll file in the /DriverStore/FileRepository/ and that does not work.
I can’t see the APO dll in the system32 folder. Even when configuring windows explorer and totalcommander to view hidden files and system files no APO dll shows up.
However, this is quite strange because if I use Agent Ransack to search the system32 folder it is able to find the SwapAPO dll.
Also if I open properties on the audio driver and click driver details I see c:\Windows\system32\SwapAPO.dll under Driver files.
So I think that it doesn’t work to just replace the APO dll file in /DriverStore/FileRepository/. It should be the APO dll in system32. But that file is a ghost. Is it there or is it not?
Even though the audio service has been stopped it seems that another process is holding a grip on the APO dll…
C:\Windows\system32>tasklist /m SwapAPO.dll
Image Name PID Modules
========================= ========
svchost.exe 808 SwapAPO.dll
xxxxx@gmail.com wrote:
Hi Tim,
Those steps does not work in my setup. Does it work for you?
Can you provide more detail on “do your replacement”?
copy myFancyApo.dll C:\Windows\System32
I have tried to replace the APO dll file in the /DriverStore/FileRepository/ and that does not work.
No, that’s a very bad idea. First, the system doesn’t look in the
driver store unless it has to install a new device. Second, when you
change one of the files, that invalidates the checksums in the CAT file,
so your signature is no longer valid.
I can’t see the APO dll in the system32 folder. Even when configuring windows explorer and totalcommander to view hidden files and system files no APO dll shows up.
Remember, if you use a 32-bit application to look at the file system on
a 64-bit system, when you look at C:\Windows\System32, you are really
looking at C:\Windows\SysWow64. If you start a cmd shell, you should be
able to “dir c:\windows\system32\swap*” and see your file.
So I think that it doesn’t work to just replace the APO dll file in /DriverStore/FileRepository/. It should be the APO dll in system32. But that file is a ghost. Is it there or is it not?
Yes, don’t touch the driver store. Yes, the file is in system32.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Hi Tim,
I can confirm that your procedure for replacing the APO works. My problem was due to 32bit version of total commander and my insufficient understanding of 64 bit windows. Thanks!
To my surprise I’ve found that AERT_Allocate() will return E_OUTOFMEMORY if more than 32768 bytes are allocated. Do you know a work around for this? I would like to allocate aproximately 350kb.