Open .inf files in directory specified in SP_DEVINSTALL_PARAMS (if any)
Modified: trunk/reactos/lib/setupapi/devinst.c
_____
Modified: trunk/reactos/lib/setupapi/devinst.c
--- trunk/reactos/lib/setupapi/devinst.c 2005-10-26 19:00:08 UTC
(rev 18778)
+++ trunk/reactos/lib/setupapi/devinst.c 2005-10-26 20:14:15 UTC
(rev 18779)
@@ -4325,19 +4325,33 @@
if (Result)
{
LPCWSTR filename;
+ WCHAR FullInfFileName[MAX_PATH];
+ LPWSTR pFullFilename;
+ if (*InstallParams.DriverPath)
+ {
+ GetFullPathNameW(InstallParams.DriverPath, MAX_PATH,
FullInfFileName, &pFullFilename);
+ if (*FullInfFileName &&
FullInfFileName[wcslen(FullInfFileName) - 1] != '\\')
+ wcscat(FullInfFileName, L"\\");
+ pFullFilename =
&FullInfFileName[wcslen(FullInfFileName)];
+ }
+ else
+ pFullFilename = &FullInfFileName[0];
+
for (filename = (LPCWSTR)Buffer; *filename; filename +=
wcslen(filename) + 1)
{
INFCONTEXT ContextManufacturer, ContextDevice;
GUID ClassGuid;
- TRACE("Opening file %S\n", filename);
+ wcscpy(pFullFilename, filename);
+ TRACE("Opening file %S\n", FullInfFileName);
+
currentInfFileDetails = HeapAlloc(GetProcessHeap(), 0,
sizeof(struct InfFileDetails));
if (!currentInfFileDetails)
continue;
memset(currentInfFileDetails, 0, sizeof(struct
InfFileDetails));
- currentInfFileDetails->hInf =
SetupOpenInfFileW(filename, NULL, INF_STYLE_WIN4, NULL);
+ currentInfFileDetails->hInf =
SetupOpenInfFileW(FullInfFileName, NULL, INF_STYLE_WIN4, NULL);
ReferenceInfFile(currentInfFileDetails);
if (currentInfFileDetails->hInf ==
INVALID_HANDLE_VALUE)
{
Show replies by date