My questions wern't ment to help you. Why should they? You said, you solved the problem.
I was just looking to learn something about another Windows weirdness.

Here some code:
if AnsiCompareText(provider, 'Microsoft') = 0 then
begin
if hasWinSource then
begin
source := srcDir + '\I386\';
if not DirectoryExists(source) then
begin
tmp := 'Your driver is a Microsoft driver.' + #13#10 + 'But ';
tmp := tmp + source + ' does not exist.' + #13#10;
tmp := tmp + '"Source Path" is no Microsoft source CD!';
if ExtLog then log(tmp);
MessageBox(frmHandle, PChar(tmp), '', MB_ICONEXCLAMATION or MB_OK);
System.Close(logHandle);
exit;
end;
actInf := tmpDir + infName;
infName := source + inf;
c_infName := AnsiLeftStr(infName, Length(infName) - 1) + '_';
if FileExists(infName) then
begin
log('Copying INF ' + infName + ' to ' + actInf);
fileCopy(infName, actInf, extLog);
// CopyFile(PChar(infName), PChar(actInf), false);
end
else if FileExists(c_infName) then
begin
log('Expanding INF ' + c_infName + ' to ' + actInf);
StartWait('Expand', '"' + c_infName + '" "' + actInf + '"', tmpDir, true, false);
end;
tempFiles.Append(actInf);
end
else
begin
source := winDir + '\inf\';
if doPatch then
begin
actInf := tmpDir + infName;
log('Copy INF ' + source + inf + ' to ' + actInf);
fileCopy(source + inf, actInf, extLog);
// CopyFile(PChar(source + inf), PChar(actInf), false);
tempFiles.Append(actInf);
end
else
begin
actInf := winDir + '\inf\' + infName;
log('Using ' + actInf);
end;
end;
end
else
begin
if srcDir <> '' then
source := srcDir
else
source := winDir + '\inf\';
if DirectoryExists(source + 'I386') then
begin
tmp := 'Your driver is a non-Microsoft driver.' + #13#10 + 'But ';
tmp := tmp + source + ' exists.' + #13#10;
tmp := tmp + '"Source Path" seems to be a Microsoft source CD!';
if ExtLog then log(tmp);
MessageBox(frmHandle, PChar(tmp), '', MB_ICONEXCLAMATION or MB_OK);
System.Close(logHandle);
exit;
end;
if doPatch then
begin
actInf := tmpDir + infName;
log('Copy INF ' + source + inf + ' to ' + actInf);
fileCopy(source + inf, actInf, extLog);// CopyFile(PChar(inf), PChar(actInf), false); tempFiles.Append(actInf); end else begin actInf := source + inf; log('Using ' + actInf); end; end;Peter