diff options
| author | Daniel Rugerio <[email protected]> | 2021-08-13 15:05:12 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-08-13 15:05:12 -0700 |
| commit | 7895dd22785ddba5e973662ed942be3b3452b89d (patch) | |
| tree | 5c4572d5bfd076d3776a88c5757e37f3ed50c0e7 /audio/sysvad/adapter.cpp | |
| parent | df47b2d284558fa9aacd19257153037e4ebba60e (diff) | |
audio: Updates for Windows 10 22000 (#655)
* Updates for Windows 10 22000.
* Change how WIL is consumed.
Diffstat (limited to 'audio/sysvad/adapter.cpp')
| -rw-r--r-- | audio/sysvad/adapter.cpp | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/audio/sysvad/adapter.cpp b/audio/sysvad/adapter.cpp index cc7960a5..ef48e5f4 100644 --- a/audio/sysvad/adapter.cpp +++ b/audio/sysvad/adapter.cpp @@ -32,6 +32,9 @@ Abstract: #ifdef SYSVAD_USB_SIDEBAND #include "usbhsminipairs.h" #endif // SYSVAD_USB_SIDEBAND +#ifdef SYSVAD_A2DP_SIDEBAND +#include "a2dphpminipairs.h" +#endif // SYSVAD_A2DP_SIDEBAND @@ -269,6 +272,15 @@ DWORD g_DisableBthScoBypass = 0; // default is SCO bypass enabled. DWORD g_DisableUsbSideband = 0; // default is USB bypass enabled. #endif // SYSVAD_USB_SIDEBAND +#ifdef SYSVAD_A2DP_SIDEBAND +// +// This driver listens for arrival/removal of the Bluetooth A2DP Sideband interfaces by +// default. Use the registry value DisableA2dpSideband (DWORD) > 0 to override +// this default. +// +DWORD g_DisableA2dpSideband = 0; // default is A2DP bypass enabled. +#endif + //----------------------------------------------------------------------------- // Functions //----------------------------------------------------------------------------- @@ -276,6 +288,8 @@ DWORD g_DisableUsbSideband = 0; // default is USB bypass enabled. #pragma code_seg("PAGE") void ReleaseRegistryStringBuffer() { + PAGED_CODE(); + if (g_RegistryPath.Buffer != NULL) { ExFreePool(g_RegistryPath.Buffer); @@ -371,15 +385,13 @@ NTSTATUS - SUCCESS if able to configure the framework g_RegistryPath.MaximumLength = RegistryPath->Length + sizeof(WCHAR); - g_RegistryPath.Buffer = (PWCH)ExAllocatePoolWithTag(PagedPool, g_RegistryPath.MaximumLength, MINADAPTER_POOLTAG); + g_RegistryPath.Buffer = (PWCH)ExAllocatePool2(POOL_FLAG_PAGED, g_RegistryPath.MaximumLength, MINADAPTER_POOLTAG); if (g_RegistryPath.Buffer == NULL) { return STATUS_INSUFFICIENT_RESOURCES; } - RtlZeroMemory(g_RegistryPath.Buffer, g_RegistryPath.MaximumLength); - RtlAppendUnicodeToString(&g_RegistryPath, RegistryPath->Buffer); return STATUS_SUCCESS; @@ -436,14 +448,12 @@ Returns: parametersPath.MaximumLength = RegistryPath->Length + sizeof(L"\\Parameters") + sizeof(WCHAR); - parametersPath.Buffer = (PWCH) ExAllocatePoolWithTag(PagedPool, parametersPath.MaximumLength, MINADAPTER_POOLTAG); + parametersPath.Buffer = (PWCH) ExAllocatePool2(POOL_FLAG_PAGED, parametersPath.MaximumLength, MINADAPTER_POOLTAG); if (parametersPath.Buffer == NULL) { return STATUS_INSUFFICIENT_RESOURCES; } - RtlZeroMemory(parametersPath.Buffer, parametersPath.MaximumLength); - RtlAppendUnicodeToString(¶metersPath, RegistryPath->Buffer); RtlAppendUnicodeToString(¶metersPath, L"\\Parameters"); @@ -1053,7 +1063,7 @@ Return Value: &pUnknownCommon, IID_IAdapterCommon, NULL, - NonPagedPoolNx + POOL_FLAG_NON_PAGED ); IF_FAILED_JUMP(ntStatus, Exit); @@ -1101,6 +1111,15 @@ Return Value: } #endif // SYSVAD_USB_SIDEBAND +#ifdef SYSVAD_A2DP_SIDEBAND + if (!g_DisableA2dpSideband) + { + // Init infrastructure for Bluetooth A2DP sideband devices. + ntStatus = pAdapterCommon->InitA2dpSideband(); + IF_FAILED_JUMP(ntStatus, Exit); + } +#endif + #ifdef _USE_SingleComponentMultiFxStates // // Init single component - multi Fx states |
