On Fri May 23 07:32:07 2025 +0000, eric pouech wrote:
actually (from winmm.dll standpoint):
- `DRV_LOAD/DRV_FREE` are paired (first is sent when DLL containing
driver is loaded, and second when it's about to be unloaded)
- `DRV_OPEN/DRV_CLOSE` are paired: a driver can support different
instances (eg. with different parameters), and they are used to create/destroy such an instance so it makes no sense to do something on `DRV_LOAD` and its counterpart on `DRV_CLOSE` (even if for mmdevapi it's likely we only have one instance created) did you investigate why the `DRV_FREE` message wasn't sent from `winmm.CloseDriver()`?
I was wrong and the `DRV_FREE` really is sent. In this case I guess moving the wait from the `DRV_CLOSE` to `DRV_FREE` is better? I also could not sense an infinite wait with it today.