This happened to be when I tryed to apply Bundle Patch 10 of Oracle Database 126.96.36.199 on Windows 2008, but I guess it could happen to any 11.x database version. I decided to apply this patch after I stepped the bug in which the heap memory is exhausted because of an CVU health checks (I described it here).
After running opatch apply I got that the following files are still active:
d:\app\11.2.0\grid\bin\oraclient11.dll d:\app\11.2.0\grid\bin\orageneric11.dll d:\app\11.2.0\grid\bin\orapls11.dll d:\app\11.2.0\grid\bin\oracommon11.dll d:\app\11.2.0\grid\bin\oci.dll d:\app\11.2.0\grid\bin\orahasgen11.dll d:\app\11.2.0\grid\bin\oraocr11.dll d:\app\11.2.0\grid\bin\oraocrb11.dll d:\app\11.2.0\grid\bin\oraocrutl11.dll d:\app\11.2.0\grid\bin\mDNSResponder.exe d:\app\11.2.0\grid\bin\ocssd.exe d:\app\11.2.0\grid\bin\cssdagent.exe d:\app\11.2.0\grid\bin\cssdmonitor.exe d:\app\11.2.0\grid\bin\evmd.exe d:\app\11.2.0\grid\bin\evmlogger.exe d:\app\11.2.0\grid\bin\gipcd.exe d:\app\11.2.0\grid\bin\gpnpd.exe d:\app\11.2.0\grid\bin\octssd.exe
It's unlikely to have something running, because I have stopped all GI processes. Again to find out which is the process holding the dll's I've used ProcessExplorer. It seemed that process WmiPrvSE.exe had the dlls open:
Description of WMI:
The wmiprvse.exe file is otherwise known as Windows Management Instrumentation. It is a Microsoft Windows-based component that provides control and information about management in an enterprise environment. Developers use the wmiprvse.exe file in order to develop applications used for monitoring purposes.
For some reason WMI is holding the CRS dlls. Stop the WMI service or kill the process and this should release the lock on the drivers and allow the opatch to proceed.