Hi Lucvdv,
If this was hardware driver then PnP would install it by default only after parallel driver was starter and enumerated device
connected to it.
But I think that your driver is software driver that in not hardware PnP, am I right?
Right.
It drives external hardware connected to the parallel port, but it connects
to the parport driver and does everything through there.
In this case you had to preinstall driver from your component trough registry, right?
Not really: it's installed through an INF file, and it does get its own
device key in \enum\root (just like modems and spooler, for example).
You can set in services registry branch Start
value to 4 so your driver won't execute during the FBA. At end phase of FBA you can change Start value to 3 or some other required
value and thus enable it on next boot.
Regards,
Slobodan
PS:
Your software driver is purely written since it do not wait for parallel port to be available.
Also if this is hardware driver let us see inf file and give us more info about the device it handle.
It has parport listed in its dependencies, so it should never be started if
the ParPort driver isn't running.
If it would be started before the parallel driver has fully initialized (so
it can't connect, which happens on XP, but didn't on W2K), it enters a wait
and retries every 15 seconds until it works or until it times out after a
couple of minutes.
But in this case it went wrong _before_ that: it was never started if
installed during FBA, its device key in enum\root was not created.
I tried to install it through devcon.exe in an FBA generic command, but
that has only lead to more headaches:
FBALOG:
: 17:18:57 PM - [FBALaunch] C:\WINDOWS\system32\devcon.exe install C:\Temp\ParComm.Inf ParComm (ExitCode: 0x2)
I suppose Exit code 2 == win32 error code 2 == file not found, but there
are only two files involved, .inf and .sys, and both existed in C:\Temp.
This is at the end of FBA (phase 8502), the next thing in the logfile is
the EWF initialization. In phase 8501 I enabled the parallel port
interrupt and the ConnectInterrupt IOCTL, but those aren't necessary to get
my driver installed, only to use it.
When I copy & paste the command from the logfile to a CMD prompt after FBA
has finished, it succeeds. This works regardless of whether the current
directory is system32 or C:\Temp -- but it prompts me with an "unsigned
driver" dialog, which I can't have either.
I know the driver works because I've been using it for some time in XPe
SP0, but there I installed it manually between FBA and cloning. Now I
wanted to create a target where everything works after FBA finishes, so I
can clone pre-FBA.
My next attempt (tomorrow) will be by running a batch file during the first
boot after FBA.
If that doesn't work, I'll have to find a way to clone disks that doesn't
destroy the EWF partition (that's the problem I had with ghost: even when
keeping partition sizes identical and by cloning the EWF partition in byte
mode, EWF didn't work on the final disks - which I found out much too late,
because there was no way to check if EWF was still working after my own app
was made the shell).