Index: /trunk/include/VBox/vmm/pdmapi.h
===================================================================
--- /trunk/include/VBox/vmm/pdmapi.h	(revision 80541)
+++ /trunk/include/VBox/vmm/pdmapi.h	(revision 80542)
@@ -132,5 +132,5 @@
 VMMR3DECL(int)          PDMR3LdrEnumModules(PVM pVM, PFNPDMR3ENUM pfnCallback, void *pvArg);
 VMMR3_INT_DECL(void)    PDMR3LdrRelocateU(PUVM pUVM, RTGCINTPTR offDelta);
-VMMR3_INT_DECL(int)     PDMR3LdrLoadR0(PUVM pUVM, const char *pszModule);
+VMMR3_INT_DECL(int)     PDMR3LdrLoadR0(PUVM pUVM, const char *pszModule, const char *pszSearchPath);
 VMMR3_INT_DECL(int)     PDMR3LdrGetSymbolR3(PVM pVM, const char *pszModule, const char *pszSymbol, void **ppvValue);
 VMMR3DECL(int)          PDMR3LdrGetSymbolR0(PVM pVM, const char *pszModule, const char *pszSymbol, PRTR0PTR ppvValue);
Index: /trunk/src/VBox/VMM/VMMR3/PDMDevice.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/PDMDevice.cpp	(revision 80541)
+++ /trunk/src/VBox/VMM/VMMR3/PDMDevice.cpp	(revision 80542)
@@ -333,5 +333,5 @@
             AssertLogRel(fR0Enabled /* not possible to just enabled raw-mode atm. */);
 
-            rc = PDMR3LdrLoadR0(pVM->pUVM, pReg->pszR0Mod);
+            rc = PDMR3LdrLoadR0(pVM->pUVM, pReg->pszR0Mod, paDevs[i].pDev->pszR0SearchPath);
             if (RT_FAILURE(rc))
                 return VMR3SetError(pVM->pUVM, rc, RT_SRC_POS, "Failed to load ring-0 module '%s' for device '%s'",
Index: /trunk/src/VBox/VMM/VMMR3/PDMLdr.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/PDMLdr.cpp	(revision 80541)
+++ /trunk/src/VBox/VMM/VMMR3/PDMLdr.cpp	(revision 80542)
@@ -744,6 +744,8 @@
  * @param   pUVM            Pointer to the user mode VM structure.
  * @param   pszModule       Module name (no path).
- */
-VMMR3_INT_DECL(int) PDMR3LdrLoadR0(PUVM pUVM, const char *pszModule)
+ * @param   pszSearchPath   List of directories to search for the module
+ *                          (assumes @a pszModule is also a filename).
+ */
+VMMR3_INT_DECL(int) PDMR3LdrLoadR0(PUVM pUVM, const char *pszModule, const char *pszSearchPath)
 {
     /*
@@ -765,5 +767,5 @@
      * Okay, load it.
      */
-    return pdmR3LoadR0U(pUVM, NULL, pszModule, NULL);
+    return pdmR3LoadR0U(pUVM, NULL, pszModule, pszSearchPath);
 }
 
