91 Commits
Author SHA1 Message Date
Alex Mendoza f800886dc0 [WDMAUD] WdmAudGetDeviceInterface(): fix memory leak and protect the buffer (#9012)
- Fix memory leak in WdmAudGetDeviceInterface() (FreeItem(Device) was not called on STATUS_BUFFER_OVERFLOW early return path).
- Wrap user-mode buffer write in ProbeForWrite() + SEH2().
2026-05-26 19:35:16 +02:00
Timo Kreuzer 1cf31524d5 [REACTOS] Stop using non-conforming swprintf / vswprintf
Use the underscored versions instead.
2026-05-07 06:27:58 +00:00
Oleg Dubinskiy 2ec1f64c96 [HDAUDBUS] Sync to the current upstream
Import the following upstream commits:
https://github.com/coolstar/sklhdaudbus/commit/30a807de7d7934045161afc93f8ef11ac7a73c91
https://github.com/coolstar/sklhdaudbus/commit/76dbc244c36645796df03c53ddc6122e059e2d62
https://github.com/coolstar/sklhdaudbus/commit/afb1d55817a233707344cb47c5f80863685f1d76
https://github.com/coolstar/sklhdaudbus/commit/da286c7824405f3255dc3d97700042f2245f854f
https://github.com/coolstar/sklhdaudbus/commit/5477b93a3b68c474819abf2094a49d0e2d8d9799
which contain new supported devices added in inf file and two bugfixes from me, which fix all playback distortions with all XP-compatible HD audio codecs.
Tested and works fine with Realtek HD audio codec R2.74 on ALC660 controller at least, but it still needs to be tested with other codecs as well (like SigmaTel etc.).
Also update the commit hash in 3rd party files.txt appropriately.
2026-04-27 23:05:40 +02:00
Oleg Dubinskiy 410dd824aa [DRIVERS] Update the name of the new HD audio bus driver
Remove *_new prefix from the new HDAudBus driver, since it's now used by default and the previous (old) one was removed.
[DOC] Update the path of the new HDAudBus driver to the current actual one.
2026-04-02 11:33:07 +02:00
Oleg Dubinskiy b308bcc311 [DRIVERS] Remove old HD audio bus driver
since it's obsolete now and is not used any more.
2026-04-02 11:33:07 +02:00
Ivan Georgiev a70f59b0dd [DRIVERS] Replace obsolete RtlConvert*ToLargeInteger calls with inline equivalents (#8721)
RtlConvertUlongToLargeInteger and RtlConvertLongToLargeInteger are
obsolete NT routines that assign a 32-bit integer to LARGE_INTEGER.QuadPart.
Replace all driver/DLL usages with inline .QuadPart assignments or
standard C/C++ casts. This removes unnecessary function calls.

CORE-19438
2026-03-14 13:29:02 +03:00
Oleg Dubinskiy 8aed778a96 [HDAUDBUS_NEW] Fix PCI Bus interface version used for WdfFdoQueryForInterface()
Use hardcoded value '1' instead of predefined 'PCI_BUS_INTERFACE_STANDARD_VERSION', as in the current upstream.
Import upstream commit https://github.com/coolstar/sklhdaudbus/commit/4c92e71ef9e91360cb35be6a09aadb2c3eaaca27.
According to the note from CoolStar, that defined value is different on Windows 11, so it causes some problems and '1' should be used instead.
Missed that during the import before.
Addendum to 7c2d923007.
2026-02-23 15:17:38 +01:00
Oleg Dubinskiy bc354746e0 [HDAUDBUS_NEW] Enable building the driver
- Add CMakeLists.txt.
- Fix GCC and MSVC builds.
CORE-15350, CORE-18776
2026-02-16 15:18:26 +01:00
Oleg Dubinskiy 47e0ac4ce4 [HDAUDBUS_NEW] Improve the driver installation (*.inf) file
to fix the audio controller device detection with the new HD audio bus driver.
CORE-15350, CORE-18776
2026-02-16 15:18:26 +01:00
Oleg Dubinskiy 7c2d923007 [HDAUDBUS_NEW] Import new SkyLake/KabyLake/ApolloLake HD audio bus driver from https://github.com/coolstar/sklhdaudbus/tree/master (BSD-3-Clause License)
[DOC] 3rd Party Files.txt: Add 'HD Audio Driver for Windows 10 / 11 with Skylake -> Raptor Lake DSP support'
CORE-15350, CORE-18776
2026-02-16 15:18:26 +01:00
Timo Kreuzer 4ceb46a700 [CMIDriver] Disable a clang warning 2025-01-14 13:34:24 +02:00
Timo Kreuzer 0c2cdcae83 [REACTOS] Add missing line breaks at end of file 2024-10-06 10:47:11 +03:00
Serge Gautherie 44662eaf62 [CMAKE] Use COMPILE_OPTIONS instead of superseded COMPILE_FLAGS
for set_source_files_properties().
2024-08-21 11:34:48 +03:00
Oleg Dubinskiy a55e9ce19c [AC97] Use individual Decibel range for Master Volume control (#6950)
Add ReactOS change to use the same Decibel (dB) sound loudness range for Master Volume control as for WaveOut Volume Control.
This fixes incompatible volume level change scaling when changing the volume in Fox Audio Player 0.10.2 from Rapps and Winamp 2.95 with WaveOut output plugin.
Now it is identical to the one when using original AC97 driver from Windows XP/Server 2003.
CORE-14780
2024-06-01 12:31:53 +02:00
Oleg Dubinskiy d1b8feb690 [AUDIO] Implement retreiving audio playback position (#6817)
Implement GetWavePosition API for both Legacy and MMixer modes.
[WDMAUD.DRV]
- Fix wrong I/O control code passed to DeviceIoControl for Legacy mode. Use IOCTL_GETPOS instead of IOCTL_OPEN_WDMAUD, to use the correct routine.
- Implement WdmAudGetWavePosition for MMixer mode, as it was completely unimplemented there. Call an appropiate MMixer routine and return back resulting wave position.
[WDMAUD]
- Implement WdmAudGetPostion routine, which is used by Legacy mode, and call the same MMixer routine from it too.
- Handle it in IOCTL_GETPOS I/O control request of dispatch routine.
[MMIXER]
- Implement MMixerGetWavePosition internal routine, which is called by both Legacy and MMixer modes, and does the actual work of retrieving playback position.
- Call an apporpriate KSPROPERTY_AUDIO_POSITION property from it, and return in the output resulting KSAUDIO_POSITION.PlayOffset member, which contains the current playback position offset, to be returned to the caller.
This fixes a failure retreiving the current audio playback position snd subsequent playing the audio data by several 3rd-party applications which are using this API (for example, some Gecko based browsers by @roytam1: Basilisk (Serpent) 52.9.0 IA-32 build, NewMoon 28.10.7 IA-32 build and KMeleon 76.5.3 Goanna engine).
CORE-19542
2024-05-06 20:07:47 +02:00
Timo Kreuzer 2185848fc8 [HDAUDBUS] Silence debug spam
- Demote a DPRINT1 to a DPRINT
- Define NDEBUG
2024-03-19 07:43:39 +01:00
Andrei Miloiu 9ecf552fe4 [DRIVERS][INF] Update Romanian (ro-RO) translation (#6088) 2023-12-09 20:19:54 +01:00
Thamatip Chitpong ea8a49d81f [PORTCLS] Don't repeat "PORTCLS" module name in version info 2023-11-29 10:31:14 +07:00
Serge Gautherie c6c6c62cb5 [PORTCLS] Remove meaningless YDEBUG (#5858)
Addendum to b77ebc4 (r54584).
Follow-up of #5818.
2023-11-02 13:14:12 +01:00
Serge Gautherie 31876ba8c2 [DSOUND_NEW][HDAUDBUS] Replace meaningless YDEBUG (#5857)
and move debug.h after all includes. Addendum to 60b0afc3a (PR #5818)

dsound_new: Addendum to 5974fe1 (r45584).
hdaudbus: Addendum to cf7fc81 (r68311).
2023-11-01 13:39:05 +01:00
Serge Gautherie 60b0afc3af [BDASUP][KMIXER][MMIXER][STREAM] Replace meaningless YDEBUG (#5818)
bdasup: Addendum to 40c15ec (r46632).
kmixer: Addendum to 3e489bf (r42143).
mmixer: Addendum to c42d9f2 (r44872).
stream: Addendum to 4a0debf (r41662).
Serge plans a follow up that will remove all other remaining YDEBUG in the source tree.
The ones covered here he considered to be the most trivial ones.
2023-10-31 12:04:24 +00:00
Serge Gautherie 5b54477d47 [BDASUP][PORTCLS][SYSAUDIO][USB] Use ExAllocatePoolZero() and ExFreePoolWithTag() (#5811) 2023-10-23 18:16:59 +02:00
Serge Gautherie c03b2ed9be [HDAUDBUS][KS][WDMAUD] Use ExAllocatePoolZero() and ExFreePoolWithTag() (#5792)
And promote/fix 2 DPRINTs as well.
2023-10-20 18:09:03 +02:00
Joachim Henze e69d2e8b89 [CMICONTROL] Fix MSVC 14.2 dbg x64 warning C4267 (#5696)
Can be observed on the buildbots:
2023-09-17T14:19:34.2051345Z [10663/14808] Building CXX object drivers\wdm\audio\drivers\CMIDriver\cmicontrol\CMakeFiles\cmicontrol.dir\main.cpp.obj
2023-09-17T14:19:34.2052611Z D:\a\reactos\reactos\src\drivers\wdm\audio\drivers\CMIDriver\cmicontrol\main.cpp(818): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data
2023-09-27 17:34:32 +00:00
Joachim Henze 806da4421c [CMICONTROL] Avoid (DLGPROC) cast (#5693)
Yes, might slightly improve with x64,
but that wasn't even my main motivation.
(DLGPROC)-casts are nonsense even for x86 actually.
2023-09-17 17:47:23 +00:00
Joachim Henze 83e1363065 [INF] More deduplication and style harmonization (#4952)
- deduplication of manufacturer strings
- at some places harmonizes the different length of separator lines within the same file, centers the words (as requested by hbelusca during review), harmonizes those lines to 74characters length each
- moving some strings that are not to be localized into the non-localization string section
- other minor formatting preferences coauthored by StasM
2022-12-28 02:26:17 +01:00
Stanislav Motylkov bbccad0ed6 [INF] Set manufacturer as ReactOS Project for consistency
Also make it non-localizable. CORE-18191
2022-06-27 17:00:18 +03:00
Victor Perevertkin 447ef2aa4a [CMAKE] Do not use USE_CLANG_CL variable in CMake scripts 2022-05-27 01:37:37 +03:00
Victor Perevertkin f155b9377f [CMAKE] Elimitate the use of GCC and CLANG variables 2022-05-27 01:37:34 +03:00
Serge Gautherie 46db6573ab [DRIVERS] Add some missing OBJ_KERNEL_HANDLE (#4493)
Match Zw*() uses. CORE-10207
2022-05-07 22:12:19 +03:00
Stanislav Motylkov b5e7797604 [AC97] Fix driver provider name
- Also sort out non-localizeable lines
- Fix German translation encoding and add missing one
- Add Russian translation

Addendum to 9c79a798, 68e19a95 and 9ca32a2b.
2022-05-07 18:00:13 +03:00
Thamatip Chitpong 9ca32a2b95 [AC97] Improve driver version info (#4368) 2022-03-06 01:04:56 +03:00
Adam Słaboń 68e19a95d0 [AC97] Enable on all Intel AC'97 audio controllers (#4366) 2022-03-06 01:04:22 +03:00
Obaid51andMichael Stamper 9c79a7982b [AC97] Import the AC97 driver sample
The source code is licensed under MIT license, taken from
"MSDN Code Gallery Microsoft Samples" repository
(https://github.com/microsoftarchive/msdn-code-gallery-microsoft)

The original license was MS-PL, but the driver was later relicensed
as MIT.

Adopted to ReactOS code base by Michael Stamper.

Co-authored-by: Michael Stamper <[email protected]>
2022-02-16 01:31:28 +03:00
Victor PerevertkinandThomas Faber 6e97b4314f [PORTCLS] Centralize AddRef/Release implementation.
And make it thread-safe.

Co-authored-by: Thomas Faber <[email protected]>
2022-02-16 01:31:27 +03:00
Thomas Faber 7db9fb3ba6 [PORTCLS] Don't leak CPortWaveCyclic. 2022-02-15 08:43:08 -05:00
Thomas Faber ec1eb52ebf [PORTCLS] Do not rely on operator new to zero memory.
The standard operator new does not do this, and GCC will in fact
optimize out any zeroing done in the operator.
2022-02-15 08:43:05 -05:00
Hermès Bélusca-Maïto 78a7d7dc32 [CMIDRIVER] Remove useless Visual Studio resource editor file. 2022-02-12 16:21:32 +01:00
Hermès Bélusca-Maïto f73c0e08e2 [FDEBUG][CMIDRIVER] Add missing psdk dependency for user-mode code. 2022-02-12 16:21:30 +01:00
Serge Gautherie fdcefaa7cb [HDAUDBUS] HDA_PdoPnp(): Remove a redundant ASSERT()
Addendum to cf7fc81 (r68311).
2022-01-08 18:00:38 +03:00
Victor Perevertkin 951e52104a [HDAUDBUS] Fix uninitialized variable usage 2022-01-05 03:22:15 +03:00
Michael Stamper 378294a7df [PORTCLS] Fix races, fix WavePci Port Drivers
- Split buffers on page to prevent non-contiguous memory being passed to driver.
- Protect CIrpQueue::GetMappingWithTag, ReleaseMappingWithTag with spinlock to prevent race conditions
  (GetMapping, ReleaseMapping do not need spinlock, they are only called from a service routine).
- Remove ASSERT in CIrpQueue::ReleaseMappingWithTag, when mappings are released out of order. Just ignore
  the tag argument and release the next one in the list. This is what windows does, confirmed by calling
  PortWavePciStream::ReleaseMapping() with tag argument set to 0, absolutly no difference observed.
  Allowing out of order release is essential given that a driver is not permitted to hold a spinlock when calling
  ReleaseMapping().
- Remove IIrpQueue::HasLastMappingFailed(), it never worked and there is no way it could work.
  CPortPinWavePci::HandleKsStream() call MappingAvailable() non-conditionally, this is what Windows does,
  verified by debug prints in ac97 driver.
- Implement CIrpQueue::NumData().
- Remove incorrect interlocked operations/volatile variables and several (now unused) class fields.
2022-01-05 03:20:44 +03:00
Victor Perevertkin 7ed1883c8e [DRIVERS] Use IoForwardIrpSynchronously in drivers
Instead of having an own routine in each driver
IoForwardIrpSynchronously can be used.
2022-01-05 02:17:56 +03:00
Thomas Faber 0af3689c2e [REACTOS] Fix traces with missing arguments.
Courtesy of VS Code Analysis warning C6064:
Missing integer argument to 'DbgPrint' that corresponds to conversion specifier 'N'.
2021-11-21 12:57:35 -05:00
Hermès Bélusca-Maïto 9393fc320e [FORMATTING] Remove trailing whitespace. Addendum to 34593d93.
Excluded: 3rd-party code (incl. wine) and most of the win32ss.
2021-09-13 03:52:22 +02:00
Julen Urizar Compains ea6e774050 [TRANSLATION] Fix minor typos and untranslated dialogs in Spanish (#3890)
- usetup: New bootsector page.
- shell32: Copy and paste, and moving elements.
  Also, some strings related to the shutdown and logoff.
- Minor Spanish grammar fix - some female words and minor latin american typos.
- First revision of the .inf, that includes the translation of the Services,
  audio, processors and other drivers and minor things.
2021-09-04 17:22:41 +03:00
Victor Perevertkin 34593d933b [FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces 2021-06-11 15:33:08 +03:00
Serge Gautherie fa47d6f852 [CMIPCI][DOC] Fix 4 DriverVer values
And add entry to '3rd Party Files.txt'.

Addendum to 4b4d95d (r39827) and ee4368d (r58644).
2021-02-02 01:56:50 +03:00
Serge Gautherie 511134ec91 [CMIPCI] Compile it as NT5.2, not NT6.0
Addendum to ba2ab59 (r61334).
2021-02-01 09:43:31 +01:00
Victor Perevertkin af0f8581ad [HDAUDBUS] Return failure from HDA_SendVerbs on a timeout
Addendum to 48b3c61b5d
2021-01-18 04:02:32 +03:00