AudioHook.dll 是 Windows 平台上一类以音频拦截与处理为核心职责的动态链接库。它不以独立进程运行,而是由宿主程序静态导入或通过 LoadLibrary 动态加载,并借助钩子机制介入系统音频数据通路,位于应用程序与音频驱动之间,充当可插拔的音频中间层。
1. 音频流拦截:基于 WASAPI 环回采集,通过 IAudioClient、IAudioCaptureClient、IAudioRenderClient 等接口,在音频渲染端点与采集端点之间插入处理节点;部分实现采用 API Hook 技术(IAT/EAT 修补、Inline Hook、Detours)改写 waveOutWrite、GetBuffer 等调用入口。
2. 音频数据处理链:内置重采样 SRC、声道映射、位深与采样率转换、混音、增益与限幅,并集成 AEC 回声消除、NS 噪声抑制、AGC 自动增益控制等语音前处理算法。
3. 会话与设备管理:通过 IMMDeviceEnumerator、IAudioSessionManager2 枚举音频设备与会话,按进程粒度调节音量、静音,切换共享与独占模式。
4. 注入与加载调度:支持 AppInit_DLLs、SetWindowsHookEx 等方式注入目标进程,维持钩子存活并完成模块卸载清理。