Home
Products
Support
Order

DriverX Support FAQ

Following is a list of the most recent support questions for DriverX.

This information provides an up-to-date supplement to the Troubleshooting section in the DriverX help file (bin\driverx.hlp).

Q. How can I get a time stamp in a kernel mode ISR?

The following assembly code can be used to get the realtime clock value. See the Intel Pentium data sheet for more information.

__int64 nTicks;

__asm rdtsc
__asm mov dword ptr[nTicks],eax
__asm mov dword ptr[nTicks+4],edx

Q. The DriverX VB Parport sample is failing on Windows 2000.

Make sure you have the latest version 4.09C release. This release includes a HwConfigureParPort call in the VB Parport sample application. This configuration is routine is required in order to run on Windows 2000.

Q. Dynamically linked user function crashes system

Make sure that your ISR or user function has only one return statement. See the SetUserFunction topic in the latest DriverX help file for additional restrictions on user functions.

// Code like this will cause problems
if ((status&MASK)==0)
  return FALSE;
HwOutp(device, STATUS_REG, status);
return TRUE;

// Rewrite it something like this
BOOL ret = TRUE;
if ((status&MASK)==0)
  ret = FALSE;
else
  HwOutp(device, STATUS_REG, status);
return ret;

Q. HwLinkUserFunctions is failing

See the SetUserFunction topic in the DriverX help file for a list of requirements for user functions and make sure that you don't have any breakpoints set in any of your user functions at the time that you call HwLinkUserFunctions.

If you are using C or C++, make sure that your function does not have a switch statement. Our dynamic linker does not currently handle the code generated by switch statements.

If you are using Visual C++, select Project > Settings and select the C/C++ tab. Make sure that your project does not have the /GZ option defined in the Project Options edit field.

If you are using Delphi, be sure to disable range and overflow checking around any user functions. This can be done using the {$R-} {$Q-} directives before the function and {$R+} {$Q+} after. See the examples\delphi\parport application for an example.

Q. Installing a PCI device using an INF file on Windows 2000 breaks DriverX support for an ISA device

Make sure that the Services entry in the INF file specifies a name of DrvxWdm--not DriverX.

[MyInstall.NT.Services]
AddService=drvxwdm,0x00000002,DriverX_Service

[DriverX_Service]
DisplayName = "DrvxWdm"