|
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"
|