Hi:
I started working on porting my driver to Windows XP and ran into a
problem, where XP would not recognize the driver. The device manager does
not have the driver listed. It’s appears as if the driver did not get
installed. I looked at the nt eventlog and the message that appears was
that the driver could not load because it could not find the file
specified. The way my driver installation is done is with the
CreateService
API call.
hService = CreateService(
schSCManager, // SCManager database
DRIVER_SZSERVICENAME, // name of service
DRIVER_SZSERVICEDISPLAYNAME, // name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_KERNEL_DRIVER, // service type
dwStartType, // start type = boot
SERVICE_ERROR_NORMAL, // error control type
//DRIVER_SZPATH, // service’s binary
DriverPath, // Use install directory
// for Backoffice certification
“Streams Drivers”, // load ordering group
NULL, // no tag identifier
DRIVER_SZDEPENDENCIES, // dependencies = NONE
DRIVER_SZSERVICENAME, // Changed to Name of driver for XP
//NULL // LocalSystem account
NULL); // no password
I tried various approaches and was finally able to see the driver with the
device manager. This was accomplished by changing the second to last
parameter in the CreateService API call to the “name of the driver.”
Although I am able to see the driver, the driver still does not start.
After reviewing the NT event log again it appears that there is a circular
dependency. “Circular dependency: The MYDRIVER Driver service depends on a
service in a group which starts later.” I tried various options for the
load ordering group parameter, but still no luck. I didn’t have this
problem with W2K or NT.
If anyone can point to an official document for porting to XP or has some
advice please respond.
Thanks in Advance
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com