Why should expecting a NULL return be wrong? It happens, as the the crashes show.
no. the cases are different. The ones you refer to (mainly in driver.c) use a hDrvr passed by the called. So, we have to catch erroneous hDrvr values. The case in lolvldrv.c is different. The hDrvr used is the one returned by the call to OpenDriver in the same function. That's why it shouldn't fail (unless someone closes the driver between the call to OpenDriver and the one to DRIVER_FindFromHDrvr - and yes, winmm functions should be made reentrant, why they are not today) A+