jannesp / audiomirror Goto Github PK
View Code? Open in Web Editor NEWAn audio driver for Windows 10 (only tested on x64) that works as a virtual audio cable.
License: MIT License
An audio driver for Windows 10 (only tested on x64) that works as a virtual audio cable.
License: MIT License
why virtual audio devices will disappear after system reboot?
Hi. Thanks for your sharing.
I build this project and find it can pass audio from speaker driver to mic driver ,very cool. I want to add more functions to it ,just like Loopback on Mac . But I am new to windows driver, could you please give me some advice? These are some my questions.
I installed your driver but unlike sysvad no recording file is recorded and the mic and speaker are not working, can I edit which part to record sound as well as use mic. Thanks you
Hi, I struggled to compile and install AudioMirror (new to Windows and Windows Driver), it worked ok now.
I'd like to know if I can create AudioMirror and destroy it by some apis in C++? something like this:
// include AudioMirror api header file
// somewhere in my project
{
if (bCreate) createAudioMirror();
......
if (bDestroy) destroyAudioMirror();
}
thank you very much.
Environment:
Windows 10, Visual Studio 2019, SDK18362, WDK18362, in C++
(Currently, I just disable enforcement through startup settings to install the unsigned driver)
Hello again,
can you please guide me through steps to debug this driver.
It builds fine and I can install it it. But if I need to debug how would one debug it?
Can it support dynamic creation or deletion of virtual audio drivers?
Hi, I am kinda new but as I was attempting to compile this on my windows VM using VS 2022. It is throwing an error telling me that Spectre Mitigated libraries missing or something along the lines. But i did install it and its still giving me the error. Is there anything I am missing ? :)
nevermind.
the driver is not listed 'audio input and outputs' but listed 'sound ,video and game controllers' on the VM.
This should not the code issue.
Due to this issue, I couldn't set the output to this driver.
do you know what is the reason ?
the note does not describe how to send pcm data to the virtual microphone
Hi @JannesP
Hope you give a look at it.
I'm on Windows 10 (x64) trying to install the driver. Driver gets installed successfully but when i check the Device Manager, no device related to this driver shows up.
However, when i directly install ".sys" file using a tool, i can see the device(AudioMirror) in "Devicetree" tool but it still doesn't show up in Windows Device Manager.
Is there any configuration i need to do ?
Any help on this would be much appreciated.
Thanks!
@JannesP Thank you for your sharing.
I built your code, but I got a new error relate to certificate
Can you help me to check it? Thank you!
Can you show me how to deploy ioctl with this driver? Thanks you.
Hello, great project!
I was wondering if you could provide some advice on how to extend the number of channels to support 5.1/7.1 surround? I have tried changing the MAX_CHANNELS, avgBytesPerSecond, and KSAUDIO_SPEAKER values in SpeakerWaveProperties.h and MicrophoneWaveProperties.h but this results in a broken driver. Are there any other parts of the code you would recommend looking at?
Build started...
1>------ Build started: Project: AudioMirror, Configuration: Release x64 ------
1>Building 'AudioMirror' with toolset 'WindowsKernelModeDriver10.0' and the 'Universal' target platform.
1>Stamping x64\Release\AudioMirror.inf
1>Stamping [Version] section with DriverVer=05/06/2021,5.33.21.519
1>C:\audiomirror\AudioMirror\AudioMirror\AudioMirror.inf(5-5): warning 1324: [Version] section should specify PnpLockdown=1.
1>AdapterCommon.obj : error LNK2019: unresolved external symbol __imp_PcGetPhysicalDeviceObject referenced in function "public: virtual long __cdecl AdapterCommon::Init(struct _IRP *,struct _DEVICE_OBJECT *)" (?Init@AdapterCommon@@UEAAJPEAU_IRP@@PEAU_DEVICE_OBJECT@@@z)
1>AdapterCommon.obj : error LNK2019: unresolved external symbol "public: __cdecl CUnknown::CUnknown(struct IUnknown *)" (??0CUnknown@@qeaa@PEAUIUnknown@@@z) referenced in function "public: static long __cdecl AdapterCommon::Create(struct IUnknown * *,struct _GUID const &,struct IUnknown *,enum _POOL_TYPE,struct _DEVICE_OBJECT *,struct _IRP *)" (?Create@AdapterCommon@@SAJPEAPEAUIUnknown@@AEBU_GUID@@PEAU2@W4_POOL_TYPE@@PEAU_DEVICE_OBJECT@@PEAU_IRP@@@z)
1>MiniportTopology.obj : error LNK2001: unresolved external symbol "public: __cdecl CUnknown::CUnknown(struct IUnknown *)" (??0CUnknown@@qeaa@PEAUIUnknown@@@z)
1>MiniportWaveRT.obj : error LNK2001: unresolved external symbol "public: __cdecl CUnknown::CUnknown(struct IUnknown *)" (??0CUnknown@@qeaa@PEAUIUnknown@@@z)
1>AdapterCommon.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl CUnknown::~CUnknown(void)" (??1CUnknown@@UEAA@XZ) referenced in function "public: virtual __cdecl AdapterCommon::~AdapterCommon(void)" (??1AdapterCommon@@UEAA@XZ)
1>MiniportTopology.obj : error LNK2001: unresolved external symbol "public: virtual __cdecl CUnknown::~CUnknown(void)" (??1CUnknown@@UEAA@XZ)
1>MiniportWaveRT.obj : error LNK2001: unresolved external symbol "public: virtual __cdecl CUnknown::~CUnknown(void)" (??1CUnknown@@UEAA@XZ)
1>MiniportWaveRTStream.obj : error LNK2001: unresolved external symbol "public: virtual __cdecl CUnknown::~CUnknown(void)" (??1CUnknown@@UEAA@XZ)
1>AdapterCommon.obj : error LNK2001: unresolved external symbol "public: virtual unsigned long __cdecl CUnknown::NonDelegatingAddRef(void)" (?NonDelegatingAddRef@CUnknown@@UEAAKXZ)
1>MiniportTopology.obj : error LNK2001: unresolved external symbol "public: virtual unsigned long __cdecl CUnknown::NonDelegatingAddRef(void)" (?NonDelegatingAddRef@CUnknown@@UEAAKXZ)
1>MiniportWaveRT.obj : error LNK2001: unresolved external symbol "public: virtual unsigned long __cdecl CUnknown::NonDelegatingAddRef(void)" (?NonDelegatingAddRef@CUnknown@@UEAAKXZ)
1>MiniportWaveRTStream.obj : error LNK2001: unresolved external symbol "public: virtual unsigned long __cdecl CUnknown::NonDelegatingAddRef(void)" (?NonDelegatingAddRef@CUnknown@@UEAAKXZ)
1>AdapterCommon.obj : error LNK2001: unresolved external symbol "public: virtual unsigned long __cdecl CUnknown::NonDelegatingRelease(void)" (?NonDelegatingRelease@CUnknown@@UEAAKXZ)
1>MiniportTopology.obj : error LNK2001: unresolved external symbol "public: virtual unsigned long __cdecl CUnknown::NonDelegatingRelease(void)" (?NonDelegatingRelease@CUnknown@@UEAAKXZ)
1>MiniportWaveRT.obj : error LNK2001: unresolved external symbol "public: virtual unsigned long __cdecl CUnknown::NonDelegatingRelease(void)" (?NonDelegatingRelease@CUnknown@@UEAAKXZ)
1>MiniportWaveRTStream.obj : error LNK2001: unresolved external symbol "public: virtual unsigned long __cdecl CUnknown::NonDelegatingRelease(void)" (?NonDelegatingRelease@CUnknown@@UEAAKXZ)
1>Driver.obj : error LNK2019: unresolved external symbol __imp_PcInitializeAdapterDriver referenced in function DriverEntry
1>Driver.obj : error LNK2019: unresolved external symbol __imp_PcDispatchIrp referenced in function "long __cdecl PnpHandler(struct _DEVICE_OBJECT *,struct _IRP *)" (?PnpHandler@@YAJPEAU_DEVICE_OBJECT@@PEAU_IRP@@@z)
1>Driver.obj : error LNK2019: unresolved external symbol __imp_PcAddAdapterDevice referenced in function "long __cdecl AddDevice(struct _DRIVER_OBJECT *,struct _DEVICE_OBJECT *)" (?AddDevice@@YAJPEAU_DRIVER_OBJECT@@PEAU_DEVICE_OBJECT@@@z)
1>SubdeviceHelper.obj : error LNK2019: unresolved external symbol __imp_PcRegisterSubdevice referenced in function "private: long __cdecl SubdeviceHelper::InstallSubdevice(struct _IRP *,unsigned short *,unsigned short ,struct _GUID const &,struct _GUID const &,long (__cdecl)(struct IUnknown * *,struct _GUID const &,struct IUnknown *,enum _POOL_TYPE,struct IUnknown *,void *,struct _ENDPOINT_MINIPAIR *),unsigned long,struct _SYSVAD_DEVPROPERTY const *,void *,struct _ENDPOINT_MINIPAIR *,struct IResourceList *,struct _GUID const &,struct IUnknown * *,struct IUnknown * *,struct IUnknown * *)" (?InstallSubdevice@SubdeviceHelper@@AEAAJPEAU_IRP@@PEAG1AEBU_GUID@@2P6AJPEAPEAUIUnknown@@2PEAU4@W4_POOL_TYPE@@4PEAXPEAU_ENDPOINT_MINIPAIR@@@ZKPEBU_SYSVAD_DEVPROPERTY@@67PEAUIResourceList@@2333@Z)
1>SubdeviceHelper.obj : error LNK2019: unresolved external symbol __imp_PcRegisterPhysicalConnection referenced in function "private: long __cdecl SubdeviceHelper::ConnectTopologies(struct IUnknown *,struct IUnknown *,struct _PHYSICALCONNECTIONTABLE *,unsigned long)" (?ConnectTopologies@SubdeviceHelper@@AEAAJPEAUIUnknown@@0PEAU_PHYSICALCONNECTIONTABLE@@k@Z)
1>SubdeviceHelper.obj : error LNK2019: unresolved external symbol __imp_PcNewPort referenced in function "private: long __cdecl SubdeviceHelper::InstallSubdevice(struct _IRP *,unsigned short *,unsigned short ,struct _GUID const &,struct _GUID const &,long (__cdecl)(struct IUnknown * *,struct _GUID const &,struct IUnknown *,enum _POOL_TYPE,struct IUnknown *,void *,struct _ENDPOINT_MINIPAIR *),unsigned long,struct _SYSVAD_DEVPROPERTY const *,void *,struct _ENDPOINT_MINIPAIR *,struct IResourceList *,struct _GUID const &,struct IUnknown * *,struct IUnknown * *,struct IUnknown * *)" (?InstallSubdevice@SubdeviceHelper@@AEAAJPEAU_IRP@@PEAG1AEBU_GUID@@2P6AJPEAPEAUIUnknown@@2PEAU4@W4_POOL_TYPE@@4PEAXPEAU_ENDPOINT_MINIPAIR@@@ZKPEBU_SYSVAD_DEVPROPERTY@@67PEAUIResourceList@@2333@Z)
1>SubdeviceHelper.obj : error LNK2019: unresolved external symbol __imp_PcNewMiniport referenced in function "private: long __cdecl SubdeviceHelper::InstallSubdevice(struct _IRP *,unsigned short *,unsigned short ,struct _GUID const &,struct _GUID const &,long (__cdecl)(struct IUnknown * *,struct _GUID const &,struct IUnknown *,enum _POOL_TYPE,struct IUnknown *,void *,struct _ENDPOINT_MINIPAIR *),unsigned long,struct _SYSVAD_DEVPROPERTY const *,void *,struct _ENDPOINT_MINIPAIR *,struct IResourceList *,struct _GUID const &,struct IUnknown * *,struct IUnknown * *,struct IUnknown * *)" (?InstallSubdevice@SubdeviceHelper@@AEAAJPEAU_IRP@@PEAG1AEBU_GUID@@2P6AJPEAPEAUIUnknown@@2PEAU4@W4_POOL_TYPE@@4PEAXPEAU_ENDPOINT_MINIPAIR@@@ZKPEBU_SYSVAD_DEVPROPERTY@@67PEAUIResourceList@@2333@Z)
1>C:\audiomirror\AudioMirror\x64\Release\AudioMirror.sys : fatal error LNK1120: 12 unresolved externals
1>Done building project "AudioMirror.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Hi James,
C:\Users\Downloads\AudioMirror-master (1)\AudioMirror-master\AudioMirror\AdapterCommon.cpp(112,96): error C2220: the following warning is treated as an error
For this line of code
if (!NT_SUCCESS(ntStatus)) DPF(D_TERSE, ("PcGetPhysicalDeviceObject failed, 0x%x", ntStatus));
I have tried to compile with (/WX-) along with /W3
Hi @JannesP : Thank you for the repo. Can you please add any documentation or helpful links for the repo?
What's the license for this project?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.